Debugger Status

From Lazarus wiki
Revision as of 04:32, 8 December 2019 by Martin (talk | contribs) (Created page with "Category:Debugging This is based on Lazarus 2.0 ==== Notes ==== For the GDB and LLDB based debugger, support is indicated based on the assumptino that your version of G...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search


This is based on Lazarus 2.0

Notes

For the GDB and LLDB based debugger, support is indicated based on the assumptino that your version of GDB supports this. Support indication is generally based on current GDB/LLDB for mainstream OS.

Fp-Debugger currently only works for Windows and Linux

Start/Stop

Feature Key ! GdbMi GdbMi+Ssh GdbServer GdbMi+FpDebug ! Lldb+FpDebug ! Fp-Debugger ! Comments
Run F9 Y Y Y Y Y Y
Run to first line (Step) F7 / F8 Y Y Y Y class="unknown" ? class="not" N For GUI apps the first line is in the code generated by the IDE
Attach Y Y Y Y ? N
Detach Y Y Y Y - N
Stop Y Y Y Y Y Y
Reset Debugger Y Y Y Y Y Y Kill/Stop


Execution Control

Feature Key ! GdbMi GdbMi+Ssh GdbServer GdbMi+FpDebug ! Lldb+FpDebug ! Fp-Debugger ! Comments
Continue (Run) F9 Y Y Y Y Y Y
Step over line F8 Y Y Y Y Y Y
Step into line F7 Y Y Y Y Y Y
Step (over) to line at cursor F8 Y Y Y Y ? Partial "STEP OVER" - This works only within the current procedure.


It will go to the selected line, or stop if the current procedure is left.
It will *step* *over* any recursive calls of the procedure, therefore not stopping at the line during recursion.

Run to line at cursor N N N N N N Workaround: Use F5 to set a breakpoint, then F9 to run
Step out (of current function) Shift-F8 Y Y Y Y Y Y
Step over asm Y Y Y Y Y Y
Step into asm Y Y Y Y Y Y
Step over "none breaking" breakpoint Y Y Y Y - Y Any "step" command will continue to its step-end after a "none breaking" Breakpoints. This is a Breakpoint that has its break property turned off. It may record a snapshot, log a message, or enable/disable other breakpoints.
Warning-icon.png

Warning: The "auto-continue" (time based) function may not return to stepping, but instead "run/continue" execution.

Step over ignored exceptions Y Y Y Y - Y Only for standard fpc exception handling. And (Lazarus 2.2) SEH on Win64.

Win32 and other OS structured exception handling are not supported (Ignored exceptions will turn Stepping into Running).

Step from except to finally or except Y Y Y Y - Y Only for standard fpc exception handling. And (Lazarus 2.2) SEH on Win64.

Win32 and other OS structured exception handling are not supported (Ignored exceptions will turn Stepping into Running).



Breakpoints / Exceptions

Feature Key ! GdbMi GdbMi+Ssh GdbServer GdbMi+FpDebug ! Lldb+FpDebug ! Fp-Debugger ! Comments
Breakpoint on Source Line Y Y Y Y Y Y
Breakpoint on Assembler Line Y Y Y Y Y Y
Watchpoint / Breakpoint Data Y Y Y Y ? Partial
.... . . . . . .

Data

Feature Key ! GdbMi GdbMi+Ssh GdbServer GdbMi+FpDebug ! Lldb+FpDebug ! Fp-Debugger ! Comments
Watches Y Y Y Y Y Y
Locals Y Y Y Y Y Y
Stack Y Y Y Y Y Y
Threads Y Y Y Y Y Y Running State indicator may not be accurate
Inspect Y Y Y Y Y Y
Evaluate / Modify Y Y Y Y ? Only Evaluate
No Modify
Watch/Inspect Properties N N N N N N Using "DWARF" properties that refer directly to a field (no getter method) are shown.
Watch/Inspect Function calls N N N N N N