Inside the Eiffel Debugger
(Redirected from InsideEiffelDebugger)
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