Difference between revisions of "Inside the Eiffel Debugger"

m
 
(One intermediate revision by the same user not shown)
Line 4: Line 4:
 
= Overview =
 
= Overview =
 
* main Eiffel classes: DEBUGGER_MANAGER, APPLICATION_EXECUTION, APPLICATION_STATUS, DUMP_VALUE, ABSTRACT_DEBUG_VALUE, DEBUGGED_OBJECT
 
* main Eiffel classes: DEBUGGER_MANAGER, APPLICATION_EXECUTION, APPLICATION_STATUS, DUMP_VALUE, ABSTRACT_DEBUG_VALUE, DEBUGGED_OBJECT
 +
= Platform specific =
 
== Classic system: ==
 
== Classic system: ==
 
* main Eiffel class: APPLICATION_EXECUTION_CLASSIC, APPLICATION_STATUS_CLASSIC, IPC_ENGINE, STOPPED_HDLR
 
* main Eiffel class: APPLICATION_EXECUTION_CLASSIC, APPLICATION_STATUS_CLASSIC, IPC_ENGINE, STOPPED_HDLR
Line 15: Line 16:
 
== Dotnet system: ==
 
== Dotnet system: ==
 
* Check Src/framework/cli_debugger
 
* Check Src/framework/cli_debugger
 +
 +
= Debugger, launcher ...=
 +
* '''DEBUGGER_MANAGER''': the main interface to control the debugger
 +
* '''DEBUGGER_CONTROLLER''': used internally to request a start, step, kill ... operation
 +
* '''DEBUGGER_EXECUTION_PARAMETERS''': hold the parameters to launch a debugging session (i.e: arguments, working directory, environment variables)
 +
 +
= Execution=
 +
* '''APPLICATION_EXECUTION''': when a debugging session is launched, the debugger create an instance of APPLICATION_EXECUTION which represents the debuggee execution
 +
* '''APPLICATION_STATUS''': associated with APPLICATION_EXECUTION, it holds various status,state,data related to the execution, and execution stopped state.
 +
 +
= Debuggee objects=
 +
* '''DEBUGGED_OBJECT''': mainly use to retrieve debuggee data given an address value
 +
* '''DUMP_VALUE''': result of evaluation, it is used to get the effective value for debugger's usage (such as display)
 +
* '''ABSTRACT_DEBUG_VALUE''' (with EIFNET_ prefix for dotnet specific versions): represent the debuggee object, with class, type, address, attributes (if any) ....
 +
* '''ICOR_DEBUG_VALUE'''  (for dotnet): Eiffel classes mapping the ICorDebug value classes

Latest revision as of 02:19, 18 July 2008

Construction.png Not Ready for Review: This Page is Under Development!

Overview

  • main Eiffel classes: DEBUGGER_MANAGER, APPLICATION_EXECUTION, APPLICATION_STATUS, DUMP_VALUE, ABSTRACT_DEBUG_VALUE, DEBUGGED_OBJECT

Platform specific

Classic system:

  • main Eiffel class: APPLICATION_EXECUTION_CLASSIC, APPLICATION_STATUS_CLASSIC, IPC_ENGINE, STOPPED_HDLR
  • main runtime entries:
    • folder Src/C/ipc (Inter Process Communication)
Src/ipc/app: for the application side (debuggee)
Src/ipc/ewb: for the Eiffel debugger side (debugger)
Src/ipc/daemon: for the debugger daemon (kind of proxy between ewb and app)
Src/ipc/shared: shared code for the communication, (un)serialization, ...

Dotnet system:

  • Check Src/framework/cli_debugger

Debugger, launcher ...

  • DEBUGGER_MANAGER: the main interface to control the debugger
  • DEBUGGER_CONTROLLER: used internally to request a start, step, kill ... operation
  • DEBUGGER_EXECUTION_PARAMETERS: hold the parameters to launch a debugging session (i.e: arguments, working directory, environment variables)

Execution

  • APPLICATION_EXECUTION: when a debugging session is launched, the debugger create an instance of APPLICATION_EXECUTION which represents the debuggee execution
  • APPLICATION_STATUS: associated with APPLICATION_EXECUTION, it holds various status,state,data related to the execution, and execution stopped state.

Debuggee objects

  • DEBUGGED_OBJECT: mainly use to retrieve debuggee data given an address value
  • DUMP_VALUE: result of evaluation, it is used to get the effective value for debugger's usage (such as display)
  • ABSTRACT_DEBUG_VALUE (with EIFNET_ prefix for dotnet specific versions): represent the debuggee object, with class, type, address, attributes (if any) ....
  • ICOR_DEBUG_VALUE (for dotnet): Eiffel classes mapping the ICorDebug value classes