Difference between revisions of "TDebuggerIntf"
From Free Pascal wiki
Jump to navigationJump to searchm (→RequestCommand) |
|||
Line 12: | Line 12: | ||
===RequestCommand=== | ===RequestCommand=== | ||
The method should return '''false''', if the command cannot be executed. | The method should return '''false''', if the command cannot be executed. | ||
+ | ==Debugger Commands== | ||
+ | {| class="wikitable" style="width:100%" | ||
+ | !Command | ||
+ | !Parameters | ||
+ | |- | ||
+ | |dcRun | ||
+ | |no parameters | ||
+ | |- | ||
+ | |dcPause | ||
+ | | | ||
+ | |- | ||
+ | |dcStop | ||
+ | | | ||
+ | |- | ||
+ | |dcStepOver | ||
+ | | | ||
+ | |- | ||
+ | |dcStepInto | ||
+ | | | ||
+ | |- | ||
+ | |dcStepOut | ||
+ | | | ||
+ | |- | ||
+ | |dcRunTo | ||
+ | | | ||
+ | |- | ||
+ | |dcJumpto | ||
+ | | | ||
+ | |- | ||
+ | |dcAttach | ||
+ | | | ||
+ | |- | ||
+ | |dcDetach | ||
+ | | | ||
+ | |- | ||
+ | |dcBreak | ||
+ | | | ||
+ | |- | ||
+ | |dcWatch | ||
+ | | | ||
+ | |- | ||
+ | |dcLocal | ||
+ | | | ||
+ | |- | ||
+ | |dcEvaluate | ||
+ | | | ||
+ | |- | ||
+ | |dcModify | ||
+ | | | ||
+ | |- | ||
+ | |dcEnvironment | ||
+ | | | ||
+ | |- | ||
+ | |dcSetStackFrame | ||
+ | | | ||
+ | |- | ||
+ | |dcDisassemble | ||
+ | | | ||
+ | |- | ||
+ | |dcStepOverInstr | ||
+ | | | ||
+ | |- | ||
+ | |dcStepIntoInstr | ||
+ | | | ||
+ | |- | ||
+ | |dcSendConsoleInput | ||
+ | | | ||
+ | |} | ||
==Development Hints== | ==Development Hints== |
Revision as of 21:18, 23 October 2017
TDebuggerIntf is the base class of implementing a debugger as Lazarus-IDE plugin package. The package must have DebuggerIntf package as it's requirements. Any debugger plug-in must implement the class and register via RegisterDebugger (called at Register of registering unit).
Minimal Implementation
The following methods must be implemented for TDebbugerIntf
- GetSupportedCommands - returns the set of formats that a debugger can perform
- RequestCommand - the method actually performing commands. Only commands returned by GetSupportedCommands would be passed to this method
- Caption - the method return user-friendly name of the debugger
Methods
RequestCommand
The method should return false, if the command cannot be executed.
Debugger Commands
Command | Parameters |
---|---|
dcRun | no parameters |
dcPause | |
dcStop | |
dcStepOver | |
dcStepInto | |
dcStepOut | |
dcRunTo | |
dcJumpto | |
dcAttach | |
dcDetach | |
dcBreak | |
dcWatch | |
dcLocal | |
dcEvaluate | |
dcModify | |
dcEnvironment | |
dcSetStackFrame | |
dcDisassemble | |
dcStepOverInstr | |
dcStepIntoInstr | |
dcSendConsoleInput |
Development Hints
- it might be helpful to rebuild IDE adding the following defines into build Options:
- -dVerboseDebugger - VerboseDebugger logs messages debugging calls from IDE itself
- -dDBG_STATE - states changes in TDebuggerIntf
- -dDBG_EVENTS - events in TDebuggerIntf
- -dDBG_VERBOSE - additional information in TDebuggerIntf
- -dDBG_WARNINGS - warnings information in TDebuggerIntf
- -dDBG_DATA_MONITORS -
- -dDBG_DISASSEMBLER -
- so the all the steps of IDE attempting to call a debugger would be logged.