Difference between revisions of "TDebuggerIntf"

From Free Pascal wiki
Jump to navigationJump to search
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.