The IRemoteProcessCallbackEx2 interface is the primary callback interface through which the Microsoft VM communicates with the debugger. The debugger registers its IRemoteProcessCallbackEx2 interface with the Microsoft VM by calling RegisterCallback. The Microsoft VM calls methods on the debugger's IRemoteProcessCallbackEx2 interface to provide notifications and information about the Java process being debugged. Debuggers should implement this latest version of the process callback interface.
Execution of the process being debugged is suspended during IRemoteProcessCallbackEx2 method calls. If the debugger returns S_OK from an IRemoteProcessCallbackEx2 method, the Java process remains suspended. Execution of the Java process is resumed when the debugger calls Go or one of the IRemoteThread stepping methods. If the debugger returns S_FALSE from an IRemoteProcessCallbackEx2 method, the Java process resumes execution immediately. The IRemoteThread interface is passed as a parameter to each IRemoteProcessCallbackEx2 method, and it represents the Java thread on which the event occurred.
// Methods HRESULT BreakEvent(IRemoteThread *pThread) HRESULT CanStopEvent(IRemoteThread *pThread) HRESULT ClassLoadEvent(IRemoteThread *pThread, IRemoteClassField *pClassType) HRESULT ClassUnloadEvent(IRemoteThread *pThread, IRemoteClassField *pClassType) HRESULT CodeBreakpointEvent(IRemoteThread *pThread) HRESULT CodeBreakpointEventEx(IRemoteThread *pThread, IMethodLocation *piml) HRESULT DataBreakpointEvent(IRemoteThread *pThread, IRemoteObject *pObject) HRESULT DebugStringEvent(IRemoteThread *pThread, LPCOLESTR pcszDebugString) HRESULT ExceptionEvent(IRemoteThread *pThread, IRemoteClassField *pExceptionClass, EXCEPTIONKIND exceptionKind) HRESULT ExceptionEventEx(IRemoteThread *pThread, IRemoteClassField *pExceptionClass, EXCEPTIONKIND exceptionKind, IRemoteClassObject *pExceptionObject) HRESULT LoadCompleteEvent(IRemoteThread *pThread) HRESULT ProcessDestroyEvent(IRemoteThread *pThread) HRESULT StartClassEvent(LPCOLESTR pcstrStartClass) HRESULT StepEvent(IRemoteThread *pThread) HRESULT ThreadCreateEvent(IRemoteThread *pThread) HRESULT ThreadDestroyEvent(IRemoteThread *pThread) HRESULT ThreadGroupCreateEvent(IRemoteThread *pThread, IRemoteThreadGroup *pThreadGroup) HRESULT ThreadGroupDestroyEvent(IRemoteThread *pThread, IRemoteThreadGroup *pThreadGroup) HRESULT TraceEvent(IRemoteThread *pThread)