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

ICorDebugStepper::Deactivate Method

Causes this ICorDebugStepper to cancel the last step command it received.

ICorDebugStepper::IsActive Method

Gets a value that indicates whether this ICorDebugStepper is currently executing a step.

ICorDebugStepper::SetInterceptMask Method

Sets a CorDebugIntercept Enumeration value that specifies the types of code that are stepped into.

ICorDebugStepper::SetRangeIL Method

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.

ICorDebugStepper::SetUnmappedStopMask Method

Sets a CorDebugUnmappedStop Enumeration value that specifies the type of unmapped code in which execution will halt.

ICorDebugStepper::Step Method

Causes this ICorDebugStepper to single-step through its containing thread, and optionally, to continue single-stepping through functions that are called within the thread.

ICorDebugStepper::StepOut Method

Causes this ICorDebugStepper to single-step through its containing thread, and to complete when the current frame returns control to the calling frame.

ICorDebugStepper::StepRange Method

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

See Also

Reference

ICorDebugStepper2 Interface

Other Resources

Debugging Interfaces