Execution Control Interfaces
Use these interfaces to manage execution.
Provides access to call stacks within the threads of the debuggee. Each stack frame represents the state of execution within a method.
HRESULT GetCallingFrame(IRemoteStackFrame **ppCallingFrame)
Parameter | Description |
[out] ppCallingFrame
| Returns the frame representing the caller of this method.
|
HRESULT GetMethodObject(IRemoteContainerObject **ppMethodObject)
Parameter | Description |
[out] ppMethodObject
| Returns the instance of the method object
|
HRESULT GetPC(UINT *offPC)
Parameter | Description |
[out] offPC
| Returns the byte offset from the start of this method of the next instruction to be executed.
|
HRESULT SetPC(UINT offPC)
Parameter | Description |
[in] offPC
| Sets the byte offset from the start of this method of the next instruction to be executed.
|
HRESULT GetKind(FRAMEKIND *pfk)
Parameter | Description |
[out] pfk
| Returns the kind of this stack frame.
typedef enum framekind {
FRAME_KIND_INVALID = 0x00,
FRAME_KIND_INTERPRETED = 0x01,
FRAME_KIND_NATIVE = 0x02,
FRAME_KIND_JIT_COMPILED = 0x03
} FRAMEKIND;
|
Provides access to thread groups.
HRESULT GetName(LPOLESTR *ppszName)
Parameter | Description |
[out] ppszName
| Returns the name of this thread group.
|
HRESULT GetThreads(IEnumRemoteThread **ppEnum)
Parameter | Description |
[out] ppEnum
| Returns an enumerator for the threads in this thread group.
|
HRESULT GetThreadGroups(IEnumRemoteThreadGroup **ppEnum)
Parameter | Description |
[out] ppEnum
| Returns an enumerator for the thread groups in this thread group.
|
Enumerates threads.
HRESULT Next(ULONG celt, IRemoteThread *rgelt[], ULONG *pceltFetched)
HRESULT Skip(ULONG celt)
HRESULT Reset(void)
HRESULT Clone(IEnumRemoteThread **ppEnum)
Enumerates thread groups.
HRESULT Next(ULONG celt, IRemoteThreadGroup *rgelt[], ULONG *pceltFetched)
HRESULT Skip(ULONG celt)
HRESULT Reset(void)
HRESULT Clone(IEnumRemoteThreadGroup **ppEnum)
Provides access to threads.
HRESULT GetName(LPOLESTR *ppszName)
Parameter | Description |
[out] ppszName
| Returns the name of this thread.
|
HRESULT GetCurrentFrame(IRemoteStackFrame **ppCurrentFrame)
Parameter | Description |
[out] ppCurrentFrame
| Returns the currently executing stack frame on this thread.
|
HRESULT GetThreadGroup(IRemoteThreadGroup **ppThreadGroup)
Parameter | Description |
[out] ppThreadGroup
| Returns the thread group that contains this thread.
|
HRESULT Go(void)
Continues execution of this thread. This call returns immediately.
HRESULT Step(void)
Steps a single instruction of bytecode. This call steps over method calls. It returns immediately. The StepEvent method is called when the execution is complete.
HRESULT StepIn(void)
Steps over a single bytecode instruction. This call steps into method calls. It returns immediately. The StepEvent method is called when the execution is complete.
HRESULT StepOut(void)
Continues execution until the end of the current method. The next instruction to be executed is the first instruction after the call in the calling method. This call returns immediately. The StepEvent method is called when the execution is complete.
HRESULT RangeStep(UINT offStart, UINT offEnd)
Continually steps until the PC is outside the given range. This call steps over method calls. The StepEvent method is called when the execution is complete.
Parameter | Description |
[in] offStart, offEnd
| Start and end byte offsets from the beginning of the current method.
|
HRESULT RangeStepIn(UINT offStart, UINT offEnd)
Continually steps until the PC is outside the given range. This call steps into method calls and calls StepEvent at the first instruction of the stepped-into method. If the debugger returns S_FALSE from StepEvent, then the VM continues executing to the end of this method, and continues executing within the given range. This call returns immediately. The StepEvent method is called when the execution is complete.
Parameter | Description |
[in] offStart, offEnd
| Start and end byte offsets from the beginning of the current method.
|
HRESULT Destroy(void)
Destroys this thread. The ThreadDestroyEvent method is called when the operation is complete.
HRESULT Suspend(void)
Suspends execution of this thread.
HRESULT Resume(void)
Resumes execution of this thread.
HRESULT GetSuspendCount(ULONG *pcSuspend)
Parameter | Description |
[out] pcSuspend
| Returns this thread's current suspend count.
|