ICorDebugStepper Interface
Represents a step in code execution that is performed by a debugger, serves as an identifier between the issuance and completion of a command, and provides a way to cancel a step.
interface ICorDebugStepper : IUnknown {
HRESULT Deactivate ();
HRESULT IsActive (
[out] BOOL *pbActive
);
HRESULT SetInterceptMask (
[in] CorDebugIntercept mask
);
HRESULT SetRangeIL (
[in] BOOL bIL
);
HRESULT SetUnmappedStopMask (
[in] CorDebugUnmappedStop mask
);
HRESULT Step (
[in] BOOL bStepIn
);
HRESULT StepOut ();
HRESULT StepRange (
[in] BOOL bStepIn,
[in, size_is(cRangeCount)] COR_DEBUG_STEP_RANGE ranges[],
[in] ULONG32 cRangeCount
);
};
Methods
Method | Description |
---|---|
Causes this ICorDebugStepper to cancel the last step command it received. |
|
Gets a value that indicates whether this ICorDebugStepper is currently executing a step. |
|
Sets a CorDebugIntercept Enumeration value that specifies the types of code that are stepped into. |
|
Sets a value that indicates whether calls to ICorDebugStepper::StepRange Method pass argument values relative to the native code or to Microsoft intermediate language (MSIL) code of the method that is being stepped through. |
|
Sets a CorDebugUnmappedStop Enumeration value that specifies the type of unmapped code in which execution will halt. |
|
Causes this ICorDebugStepper to single-step through its containing thread, and optionally, to continue single-stepping through functions that are called within the thread. |
|
Causes this ICorDebugStepper to single-step through its containing thread, and to complete when the current frame returns control to the calling frame. |
|
Causes this ICorDebugStepper to single-step through its containing thread, and to return when it reaches code beyond the last of the specified ranges. |
Remarks
The ICorDebugStepper Interface interface serves several purposes:
It acts as an identifier between a step command issued and the completion of that command.
It provides a central interface to encapsulate all of the stepping that can be performed.
It provides a way to prematurely cancel a stepping operation.
There can be more than one stepper per thread. For example, a breakpoint may be hit in the midst of stepping over a function, and the user may wish to start a new stepping operation inside that function. It is up to the debugger how to handle this: It may want to cancel the original stepping operation, or nest them — the ICorDebugStepper Interface interface allows either behavior.
A stepper may migrate between threads if a cross-threaded, marshaled call is made by the common language runtime.
Requirements
Platforms: Windows 2000, Windows XP, Windows Server 2003 family
Header: CorDebug.idl
Library: CorGuids.lib
.NET Framework Version: 2.0, 1.1, 1.0