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 value that specifies the types of code that are stepped into. |
|
Sets a value that indicates whether calls to ICorDebugStepper::StepRange 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 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 serves the following purposes:
It acts as an identifier between a step command that is issued and the completion of that command.
It provides a central interface to encapsulate all 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 while stepping over a function, and the user may wish to start a new stepping operation inside that function. It is up to the debugger to determine how to handle this situation. The debugger may want to cancel the original stepping operation or nest the two operations. The ICorDebugStepper interface supports both choices.
A stepper may migrate between threads if the common language runtime (CLR) makes a cross-threaded, marshaled call.
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