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:
Type | Reason |
---|---|
AbsentInformationException | Documentation for this section has not yet been entered. |
AppDomainCreateEvent | Documentation for this section has not yet been entered. |
AppDomainMirror | Represents an AppDomain in the debuggee. |
AppDomainUnloadEvent | Documentation for this section has not yet been entered. |
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. |
AssemblyUnloadEvent | Documentation for this section has not yet been entered. |
BreakpointEvent | Sent when a Breakpoint event occurs in the debuggee. |
BreakpointEventRequest | Request for Breakpoint events. |
CustomAttributeDataMirror | Represents a custom attribute in the debuggee. |
CustomAttributeNamedArgumentMirror | Documentation for this section has not yet been entered. |
CustomAttributeTypedArgumentMirror | Documentation for this section has not yet been entered. |
EnumMirror | Represents an enum instance in the debuggee. |
ErrorCode | Error codes sent by debuggee using the wire protocol. |
ErrorHandlerEventArgs | Arguments to the Connection event handler. |
Event | Represents an event occuring in the debuggee. |
EventRequest | Request receiving a specific type of event. |
EventSet | Documentation for this section has not yet been entered. |
EventType | Possible types of events. |
ExceptionEvent | Documentation for this section has not yet been entered. |
ExceptionEventRequest | Documentation for this section has not yet been entered. |
FieldInfoMirror | Represents a FieldInfo in the debuggee. |
IInvokeAsyncResult | Documentation for this section has not yet been entered. |
ILInstruction | Represents an IL instruction. |
IMirror | Represents an entity in the debuggee. |
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. |
InvokeOptions | Documentation for this section has not yet been entered. |
ITargetProcess | Documentation for this section has not yet been entered. |
LaunchOptions | Options used to control Mono.Debugger.Soft.VirtualMachineManager.Launch(String[], Mono.Debugger.Soft.LaunchOptions). |
LaunchOptions+ProcessLauncher | Documentation for this section has not yet been entered. |
LaunchOptions+TargetProcessLauncher | Documentation for this section has not yet been entered. |
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. |
StepDepth | Type of a Single Step operation. |
StepEvent | Sent when a Single Step event occurs in the debuggee. |
StepEventRequest | Request object for single step events. |
StepSize | Amount of code to execute when single stepping. |
StringMirror | Represents a string object in the debuggee. |
StructMirror | Represents a valuetype instance in the debuggee. |
SuspendPolicy | Determines which threads are suspended in the debuggee when an event occurs. |
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. |
VersionInfo | Documentation for this section has not yet been entered. |
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. |