Working with MS VM
 In this topic

*IRemoteStackFrame : IUnknown

*IRemoteThreadGroup : IUnknown

*IEnumRemoteThread : IUnknown

*IEnumRemoteThreadGroup : IUnknown

*IRemoteThread : IUnknown

 

Microsoft VM     Previous VM  
Java Language Debug Interfaces     Previous VM  

 


Execution Control Interfaces

Use these interfaces to manage execution.

IRemoteStackFrame : IUnknown

Provides access to call stacks within the threads of the debuggee. Each stack frame represents the state of execution within a method.

GetCallingFrame

HRESULT GetCallingFrame(IRemoteStackFrame **ppCallingFrame)

ParameterDescription
[out] ppCallingFrame Returns the frame representing the caller of this method.

GetMethodObject

HRESULT GetMethodObject(IRemoteContainerObject **ppMethodObject)

ParameterDescription
[out] ppMethodObject Returns the instance of the method object

GetPC

HRESULT GetPC(UINT *offPC)

ParameterDescription
[out] offPC Returns the byte offset from the start of this method of the next instruction to be executed.

SetPC

HRESULT SetPC(UINT offPC)

ParameterDescription
[in] offPC Sets the byte offset from the start of this method of the next instruction to be executed.

GetKind

HRESULT GetKind(FRAMEKIND *pfk)

ParameterDescription
[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;

IRemoteThreadGroup : IUnknown

Provides access to thread groups.

GetName

HRESULT GetName(LPOLESTR *ppszName)

ParameterDescription
[out] ppszName Returns the name of this thread group.

GetThreads

HRESULT GetThreads(IEnumRemoteThread **ppEnum)

ParameterDescription
[out] ppEnum Returns an enumerator for the threads in this thread group.

GetThreadGroups

HRESULT GetThreadGroups(IEnumRemoteThreadGroup **ppEnum)

ParameterDescription
[out] ppEnum Returns an enumerator for the thread groups in this thread group.

IEnumRemoteThread : IUnknown

Enumerates threads.

Next

HRESULT Next(ULONG celt, IRemoteThread *rgelt[], ULONG *pceltFetched)

Skip

HRESULT Skip(ULONG celt)

Reset

HRESULT Reset(void)

Clone

HRESULT Clone(IEnumRemoteThread **ppEnum)

IEnumRemoteThreadGroup : IUnknown

Enumerates thread groups.

Next

HRESULT Next(ULONG celt, IRemoteThreadGroup *rgelt[], ULONG *pceltFetched)

Skip

HRESULT Skip(ULONG celt)

Reset

HRESULT Reset(void)

Clone

HRESULT Clone(IEnumRemoteThreadGroup **ppEnum)

IRemoteThread : IUnknown

Provides access to threads.

GetName

HRESULT GetName(LPOLESTR *ppszName)

ParameterDescription
[out] ppszName Returns the name of this thread.

GetCurrentFrame

HRESULT GetCurrentFrame(IRemoteStackFrame **ppCurrentFrame)

ParameterDescription
[out] ppCurrentFrame Returns the currently executing stack frame on this thread.

GetThreadGroup

HRESULT GetThreadGroup(IRemoteThreadGroup **ppThreadGroup)

ParameterDescription
[out] ppThreadGroup Returns the thread group that contains this thread.

Go

HRESULT Go(void)

Continues execution of this thread. This call returns immediately.

Step

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.

StepIn

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.

StepOut

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.

RangeStep

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.

ParameterDescription
[in] offStart, offEnd Start and end byte offsets from the beginning of the current method.

RangeStepIn

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.

ParameterDescription
[in] offStart, offEnd Start and end byte offsets from the beginning of the current method.

Destroy

HRESULT Destroy(void)

Destroys this thread. The ThreadDestroyEvent method is called when the operation is complete.

Suspend

HRESULT Suspend(void)

Suspends execution of this thread.

Resume

HRESULT Resume(void)

Resumes execution of this thread.

GetSuspendCount

HRESULT GetSuspendCount(ULONG *pcSuspend)

ParameterDescription
[out] pcSuspend Returns this thread's current suspend count.

Top © 1998 Microsoft Corporation. All rights reserved. Terms of use.