IDE Window: Debugger Options
- 1 General
- 2 Event Log
- 3 Language Exceptions
- 4 OS Exceptions
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)
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.
- 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.
This controls which messages are logged in the event log
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
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.