IDE Window: Debugger Options

From Free Pascal wiki
Revision as of 09:08, 26 May 2012 by BigChimp (talk | contribs) (Hope creating a see also link on this kind of page is appropriate, but I think Debugger_Setup is very useful when setting up debuggin in the IDE)

Deutsch (de) English (en) español (es) français (fr) português (pt) русский (ru)


Debugger options general.png

Debugger type and path

Choose the debugger.

  • None - No debugger. On Run, simply execute the program.
  • GNU debugger (gdb) - The gdb is not part of Lazarus. Unles you are using windows, you must install it yourself.

This is the connector to gdb. You must set the path to gdb (for example /usr/bin/gdb) in the field below.

  • GNU debugger through SSH - for remote debugging. You can use a SSH connection to a another computer and execute gdb there. You need a SSH connection without prompt for password for this. See the SSH documentation on how to do that.

Additional search path

You can add extra directories, where to search for sources, named in the debugging information of the executable. This is used for all projects.

Debugger general options

Show message on stop

Enable this to show a notification, when programs stops.

Debugger specific options

Each debugger type has special options.

GNU debugger (gdb)

  • OverrideRTLCallingConvention:

This is an internal flag and can stay default. To handle software exceptions, Lazarus uses some internal breakpoints on locations where these exceptions are raised. When an executable is fully compiled with debug info (thus also the RTL) one can retrieve the agruments passed to those exception routines. However that is usually not the case, so Lazarus has its internal way of examinig the callstack and registers. In order to interprete those arguments correctly it needs to know what the internal calling convention was of those routines. Pre FPC 1.9.x arguments were passed on stack. Nowadays arguments are passed in registers. In case the the FPC version detection routine draws the wrong conclusion, one can override the calling convention here.

Event Log

Debugger options eventlog.png


Eventually logging info should go the the event log, for now it is show in the debug output window.

  • Clear log on run: clear the event log, on each start of the program.
  • Limit line count to: keep only the last lines of output.


(not implemented)

This controls which messages are logged in the event log

Language Exceptions

Debugger options language exceptions.png

Programs can raise exceptions. For example, when a file can not be read. Here you setup, if the debugger should stop on an exception.

Ignore these exceptions

Add your exceptions to ignore here. For example: EDivByZero

Break on Lazarus Exceptions

Uncheck this option if you don't want to stop on any exception

OS Exceptions

Debugger options os exceptions.png


(not implemented)

Defines if signals should be handled by the debugger or by the user program. For instance, an div by zero is first signalled by the OS. Then the FPC RTL translates this to an EDivByZero. When the signal is handled by the debugger, the program is stopped before the RTL translates this message. Currently the debugger always stops on a signal.

See also