Difference between revisions of "Lazarus Debugger Implementation"
Line 18: | Line 18: | ||
The code currently is located in | The code currently is located in | ||
− | + | * folder /debugger | |
− | + | * folder /ide, files: debugmanager.pas and basedebugmanager.pas | |
− | + | * folders ide/frames and debugger/frames for configuration settings. | |
BaseDebugManager is currently based on components\debuggerintf\dbgintfdebuggerbase.pp | BaseDebugManager is currently based on components\debuggerintf\dbgintfdebuggerbase.pp |
Revision as of 21:38, 3 February 2021
│
English (en) │
Introduction
This page provides an overview of how the debugger is implemented in the Lazarus IDE.
The debugger comprises the following parts:
- Debugger-Frontend
- The controls (run, step, stop buttons) and dialogs (watches, stack) in the IDE.
- Debugger-Interface
- A set of base-classes defining the communication between the front-end and each back-end
- Debugger-Backend
- Any code to control the debugged app, and retrieve/modify data from/in that app. The back-end may itself be split into an IDE back-end and an external back-end (e.g. gdb).
Debugger-Frontend
The code for the debugger frontend belongs currently directly to the IDE (to the project ide/lazarus.lpi). It is not a package of it's own.
Some of this code may one day be moved into a package. And maybe even introduce a package DebuggerFrontendIntf, to allow alternative 3rd party front-ends.
The code currently is located in
- folder /debugger
- folder /ide, files: debugmanager.pas and basedebugmanager.pas
- folders ide/frames and debugger/frames for configuration settings.
BaseDebugManager is currently based on components\debuggerintf\dbgintfdebuggerbase.pp
Debugger-Interface
components\debuggerintf\
TDebuggerIntf - main class
TDebuggerDataMonitor and TDebuggerDataSupplier - stack, watches, ....
Debugger-Backend
GDB / GDBMI based
components\lazdebuggergdbmi
LLDB
components\lazdebuggers\LazDebuggerLldb components\lazdebuggers\LazDebuggerFpLldb
FpDebug
components\lazdebuggers\LazDebuggerFp