Mono Class Library: NamespacesMono.Debugger.Soft Namespace |
Mono Soft Debugger API [Edit]
This API is used to communicate with the debugging agent running inside a mono runtime.
The API is based on and is very similar to the Java Debug Interface. If documentation is missing, the JDI documentation can be consulted instead.
In this documentation, debuggee refers to the remote process running the mono runtime which this API communicates with.
A Mirror object represents an entity in the debuggee. There is usually one mirror subclass for each type of entity, i.e. TypeMirror for types, AppDomainMirror for application domains etc. These classes usually have a similar set of properties/methods as their non-mirror counterparts, the difference is that calling these properties/methods might result in a remote call to the debuggee to request information. The results of these remote calls are usually cached in the mirror object, so when multiple calls are made to TypeMirror.Name, for example, only the first call involves a remote operation. The ToString()/Equals()/GetHashCode () methods are an exception, these are guaranteed to only access local state.
Differences between this API and JDI:
[Edit]
- There is only one namespace, instead of 5 in JDI.
- The API uses classes, while JDI uses interfaces.
- No SPI interface yet.
- Information is accessed using C# properties instead of methods.
- There are fewer classes, i.e. EventQueue/EventRequestManager is integrated into VirtualMachine.
- Values which have primitive types i.e. int are represented by a class called PrimitiveValue, instead of a separate class for each primitive type.
Type Reason AppDomainMirror Represents an AppDomain in the debuggee. ArrayMirror Represents an array object in the debuggee. AssemblyLoadEvent Sent when an AssemblyLoad event occurs in the debuggee. AssemblyMirror Represents an Assembly in the debuggee. BreakpointEvent Sent when a Breakpoint event occurs in the debuggee. BreakpointEventRequest Request for Breakpoint events. CustomAttributeDataMirror Represents a custom attribute in the debuggee. EnumMirror Represents an enum instance in the debuggee. ErrorHandlerEventArgs Arguments to the Connection event handler. Event Represents an event occuring in the debuggee. EventRequest Request receiving a specific type of event. FieldInfoMirror Represents a FieldInfo in the debuggee. ILInstruction Represents an IL instruction. InvalidStackFrameException Thrown when a stack frame is accessed which belongs to a thread which was resumed. InvocationException Documentation for this section has not yet been entered. LaunchOptions Options used to control Mono.Debugger.Soft.VirtualMachineManager.Launch(String[], Mono.Debugger.Soft.LaunchOptions). LocalVariable Represents a local variable of a method. Location Represents an executable location in the debuggee. MethodBodyMirror Represents a MethodBody in the debuggee. MethodEntryEvent Sent when a MethodEntry event occurs in the debuggee. MethodEntryEventRequest Request for MethodEntry events. MethodExitEvent Sent when a MethodExit event occurs in the debuggee. MethodExitEventRequest Request for MethodExit events. MethodMirror Represents a MethodInfo in the debuggee. Mirror Base class for mirror objects. ModuleMirror Represents a Module in the debuggee. ObjectCollectedException Thrown when a attempt was made to access the state of a garbage collected object. ObjectMirror Represents an object in the debuggee. ParameterInfoMirror Represents a ParameterInfo in the debuggee. PrimitiveValue Represents a value of a primitive type in the debuggee. PropertyInfoMirror Documentation for this section has not yet been entered. StackFrame Represents a stack frame of a suspended thread in the debuggee. StepEvent Sent when a Single Step event occurs in the debuggee. StepEventRequest Request object for single step events. StringMirror Represents a string object in the debuggee. StructMirror Represents a valuetype instance in the debuggee. ThreadDeathEvent Sent when a ThreadDeath event occurs in the debuggee. ThreadMirror Represents a Thread in the debuggee. ThreadStartEvent Sent when a ThreadStart event occurs in the debuggee. TypeLoadEvent Sent when a TypeLoad event occurs in the debuggee. TypeMirror Represents a Type in the debuggee. Value Represents a value in the debuggee. VirtualMachine Represents a connection to a debuggee. VirtualMachineManager Allows launching and connecting to mono virtual machines. VMDeathEvent Sent when a VMDeath event occurs in the debuggee. VMDisconnectedException Thrown when the connection to the debuggee is lost while executing an operation. VMDisconnectEvent Sent when the connection to the debuggee is lost. VMMismatchException Thrown when an attempt was made to use entities belonging to different virtual machines. VMStartEvent Sent when a VMStart event occurs in the debuggee.
Type Reason IMirror Represents an entity in the debuggee.
Type Reason CustomAttributeNamedArgumentMirror Documentation for this section has not yet been entered. CustomAttributeTypedArgumentMirror Documentation for this section has not yet been entered.
Type Reason ErrorCode Error codes sent by debuggee using the wire protocol. EventType Possible types of events. StackFrameType Represents the type of a stack frame. StepDepth Type of a Single Step operation. StepSize Amount of code to execute when single stepping. SuspendPolicy Determines which threads are suspended in the debuggee when an event occurs.