The main class for handling debug communications with the Fling OS kernel.
Inheritance Hierarchy
Kernel.Debug.Debugger Debugger
Namespace: Kernel.Debug.Debugger
Assembly: Kernel.Debug.Debugger (in Kernel.Debug.Debugger.exe) Version: 1.0.0.0 (1.0.0.0)
Syntax
The Debugger type exposes the following members.
Constructors
Name | Description | |
---|---|---|
![]() | Debugger |
Initialises a new instance on the debugger but does not connect
it to the kernel. Use Init(String, String).
|
Methods
Name | Description | |
---|---|---|
![]() | BeginBreak |
Breaks OS execution at the nearest possible moment.
Note: EndBreak has to be called unless execution is immediately continued.
|
![]() | ClearInt3 |
Performs a delayed-clear of an Int3 at the specified address.
|
![]() | Continue |
Continues OS execution - can be called immediately after OnBreak without EndBreak being called.
|
![]() | Dispose |
Disposes of the debugger instance cleanly.
|
![]() | EndBreak |
Completes breaking of OS execution. Must be called immediately after OnBreak event is fired unless Continue
is immediately called.
|
![]() | GetArguments |
Gets the argument values as they were immediately prior to the break interrupt.
|
![]() | GetBreakAddress |
Sends a request for the brwak address.
|
![]() | GetLocals |
Gets the locals values as they were immediately prior to the break interrupt.
|
![]() | GetMemory |
Gets the value of the specified memory.
|
![]() | GetRegisters |
Gets the register values as they were immediately prior to the break interrupt.
|
![]() | Handle_BreakCmd |
Handles a received break command.
|
![]() | Handle_ClearInt3Cmd |
Handles a received ClearInt3 command.
|
![]() | Handle_ContinueCmd |
Handles a received Continue command.
|
![]() | Handle_GetArgumentsCmd |
Handles a received GetArguments command.
|
![]() | Handle_GetBreakAddressCmd |
Handles a received GetBreakAddress command.
|
![]() | Handle_GetLocalsCmd |
Handles a received GetLocals command.
|
![]() | Handle_GetMemoryCmd |
Handles a received GetMemory command.
|
![]() | Handle_GetRegistersCmd |
Handles a received GetRegisters command.
|
![]() | Handle_MessageCmd |
Handles a received Message command.
|
![]() | Handle_SendArgumentsCmd |
Handles a received SendArguments command.
|
![]() | Handle_SendBreakAddressCmd |
Handles a received SendBreakAddress command.
|
![]() | Handle_SendLocalsCmd |
Handles a received SendLocals command.
|
![]() | Handle_SendMemoryCmd |
Handles a received SendMemory command.
|
![]() | Handle_SendRegistersCmd |
Handles a received SendRegisters command.
|
![]() | Handle_SetInt3Cmd |
Handles a received SetInt3 command.
|
![]() | Handle_StepNextCmd |
Handles a received StepNext command.
|
![]() | HandleCommand(Byte) |
Handles the specified command as though it were received from the OS being debugged.
|
![]() | HandleCommand(DebugCommands) |
Handles the specified command as though it were received from the OS being debugged.
|
![]() | Init |
Initialises the debugger, connects to the specified pipe and loads debug info
from the build directory.
|
![]() | LoadCurrentIlOp |
Loads the current line's IL Op info (assuming we aren't in a plugged method)
|
![]() | LoadCurrentMethodASM_Plugged |
Loads the current method's ASM assuming it is plugged.
|
![]() | LoadCurrentMethodASM_Unplugged |
Loads the current method's ASM assuming it is not plugged.
|
![]() | LoadCurrentMethodCS |
Loads the current method's C# code (if it isn't plugged).
|
![]() | LoadMemoryValue |
Adds a memory request to the queue of memory requests.
|
![]() | LoadMemoryValue_Run |
Underlying method that asynchronously executes all the memory requests.
|
![]() | SendPendingInt3Changes | |
![]() | SetInt3 |
Performs a delayed-set of an Int3 at the specified address.
|
![]() | StepNext |
Performs an Int1 step
|
![]() | StepToNextIL |
Steps to the beggining of the next line of IL code.
|
![]() | Stop |
Stops the debugger and closes the connection.
|
![]() | TryLoadCurrentPluggedMethod |
Loads the current method from the debug database
based on the break address.
|
![]() | TryLoadCurrentUnpluggedMethod |
Loads the current method from the debug database
based on the break address.
|
![]() | WaitForCommand |
Waits for and then handles an incoming command from the kernel
|
Fields
Name | Description | |
---|---|---|
![]() | arguments |
The current method's arguments.
|
![]() | breakAddress |
The address of the last instruction executed before the break.
|
![]() | currentCSLine |
The current C# line info.
|
![]() | currentCSMethod |
The current C# method info.
|
![]() | currentCSSymbol |
The current C# symbol info.
|
![]() | currentILOpInfo |
The IL Op info for the current line assuming we are not in a plugged method.
|
![]() | currentMethod |
The current method determined from break address.
|
![]() | currentMethodASM |
The current method's ASM text.
|
![]() | currentNearestLabels |
The nearest labels to the break address.
|
![]() | currentNearestMethodBasedLabel |
The nearest label to the break address that is a method-based label e.g.
"method_METHODID.IL_OPNUMBER_ASMNUMBER"
|
![]() | GetMemory_Data | |
![]() | GetMemory_Length | |
![]() | lastILOpInfo |
The last IL Op info that was found (if any).
|
![]() | LoadMemoryRequests |
The list of requests for memory.
|
![]() | locals |
The current method's locals.
|
![]() | Mode_64bit | |
![]() | OnBreak | |
![]() | OnConnected | |
![]() | OnInvalidCommand | |
![]() | PendingClearInt3Addresses | |
![]() | PendingSetInt3Addresses | |
![]() | registers |
The data of the registers when execution was broken.
|
![]() | State |
The current debugger state.
|
![]() | TheASMFile |
The kernel's main assembler file.
|
![]() | TheElfMap |
The Elf Map for the kernel being debugged.
|
![]() | ThePDBDumpManager |
The PDB dump manager used to access IL to C# mapping info.
|
![]() | TheSerial |
The serial connection to the kernel.
|
Properties
Name | Description | |
---|---|---|
![]() | Arguments |
The current method's arguments.
|
![]() | BreakAddress |
The address of the last instruction executed before the break.
|
![]() | CurrentASMLineLength |
The length of the current ASM line.
|
![]() | CurrentASMLineStartOffset |
The offset from the start of the method ASM to the current ASM line
|
![]() | CurrentCSLine |
The current C# line info.
|
![]() | CurrentCSMethod |
The current C# method info.
|
![]() | CurrentCSSymbol |
The current C# method info.
|
![]() | CurrentILOpInfo |
The IL Op info for the current line assuming we are not in a plugged method.
|
![]() | CurrentMethod |
The current method determined from break address.
|
![]() | CurrentMethodASM |
The current method's ASM text.
|
![]() | CurrentNearestLabels |
The nearest labels to the break address.
|
![]() | CurrentNearestMethodBasedLabel |
The nearest label to the break address that is a method-based label e.g.
"method_METHODID.IL_OPNUMBER_ASMNUMBER"
|
![]() | CurrentNearestMethodLabel |
The nearest label to the break address that is a method label e.g.
"method_METHODID"
|
![]() | LastILOpInfo |
The last IL Op info that was found (if any).
|
![]() | Locals |
The current method's locals.
|
![]() | Registers |
The data of the registers when execution was broken.
|
Events
Name | Description | |
---|---|---|
![]() | OnBreak |
Fired when the Break command is received.
|
![]() | OnConnected |
Fired when the debugger first becomes connected.
|
![]() | OnInvalidCommand |
Fired when an invalid command is received.
|
See Also