Difference between revisions of "Inside the Eiffel Debugger"
m |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:EiffelDebugger]] | [[Category:EiffelDebugger]] | ||
+ | {{UnderConstruction}} | ||
= 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 14: | 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 01:19, 18 July 2008
Contents
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