Delen via


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 value that specifies the types of code that are stepped into.

ICorDebugStepper::SetRangeIL Method

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.

ICorDebugStepper::SetUnmappedStopMask Method

Sets a CorDebugUnmappedStop 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 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: See .NET Framework System Requirements.

Header: CorDebug.idl

Library: CorGuids.lib

.NET Framework Versions: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

See Also

Reference

ICorDebugStepper2 Interface

Other Resources

Debugging Interfaces