Share via


IDkmNativeSymbolProviderCallback120a.GetSteppingRanges Method

Definition

Queries the symbol provider to determine the ranges of instructions which the base debug monitor should step through to implement a step.

public:
 cli::array <Microsoft::VisualStudio::Debugger::Symbols::DkmSteppingRange> ^ GetSteppingRanges(Microsoft::VisualStudio::Debugger::Native::DkmNativeInstructionSymbol ^ nativeInstruction, Microsoft::VisualStudio::Debugger::DkmModuleInstance ^ moduleInstance, Microsoft::VisualStudio::Debugger::DkmInstructionAddress ^ stepStartingAddress, Microsoft::VisualStudio::Debugger::Symbols::DkmSteppingRangeBoundary rangeBoundary, bool includeInline);
public Microsoft.VisualStudio.Debugger.Symbols.DkmSteppingRange[] GetSteppingRanges (Microsoft.VisualStudio.Debugger.Native.DkmNativeInstructionSymbol nativeInstruction, Microsoft.VisualStudio.Debugger.DkmModuleInstance moduleInstance, Microsoft.VisualStudio.Debugger.DkmInstructionAddress stepStartingAddress, Microsoft.VisualStudio.Debugger.Symbols.DkmSteppingRangeBoundary rangeBoundary, bool includeInline);
public Microsoft.VisualStudio.Debugger.Symbols.DkmSteppingRange[]? GetSteppingRanges (Microsoft.VisualStudio.Debugger.Native.DkmNativeInstructionSymbol nativeInstruction, Microsoft.VisualStudio.Debugger.DkmModuleInstance moduleInstance, Microsoft.VisualStudio.Debugger.DkmInstructionAddress? stepStartingAddress, Microsoft.VisualStudio.Debugger.Symbols.DkmSteppingRangeBoundary rangeBoundary, bool includeInline);
abstract member GetSteppingRanges : Microsoft.VisualStudio.Debugger.Native.DkmNativeInstructionSymbol * Microsoft.VisualStudio.Debugger.DkmModuleInstance * Microsoft.VisualStudio.Debugger.DkmInstructionAddress * Microsoft.VisualStudio.Debugger.Symbols.DkmSteppingRangeBoundary * bool -> Microsoft.VisualStudio.Debugger.Symbols.DkmSteppingRange[]
Public Function GetSteppingRanges (nativeInstruction As DkmNativeInstructionSymbol, moduleInstance As DkmModuleInstance, stepStartingAddress As DkmInstructionAddress, rangeBoundary As DkmSteppingRangeBoundary, includeInline As Boolean) As DkmSteppingRange()

Parameters

nativeInstruction
DkmNativeInstructionSymbol

[In] DkmNativeInstructionSymbol represents a native instruction within a module of the target process. DkmNativeInstructionSymbol are 1:1 with the underlying native instructions. So if there are two template instantiations of a method (ex: MyMethod<CString> and MyMethod<int>) if the linker merges the two instantiations into a single function through COMDAT folding then the methods will be identical. If the linker isn't able to merge the two instantiations then both user-level functions will appear as one DkmNativeInstructionSymbol.

moduleInstance
DkmModuleInstance

[In] Module instance which contains the current instruction symbol.

stepStartingAddress
DkmInstructionAddress

[In,Optional] Instruction where the step began. May be null in unusual situations, such as beginning the step with no frames on the stack. Note that this is not necessarily a native instruction.

rangeBoundary
DkmSteppingRangeBoundary

[In] Indicates to the symbol provider the type of instructions to include in the 'no-step' regions.

includeInline
Boolean

[In] True if the symbol provider should stop the stepping range when it encounters an inline functions. False otherwise. The Native DM will pass true for a step in so steps will stop in inline functions. It will pass false when doing a step-over so the stepper will not stop in inline functions.

Returns

[Out] Array of ranges to step through. This array will be empty if there is no source information for the given instruction.

Applies to