DkmStackWalkFrame.Create 方法

定义

重载

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>)

创建新的 DkmStackWalkFrame 对象实例。

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData)

创建新的 DkmStackWalkFrame 对象实例。

         此 API 是在 Visual Studio 12 RTM (VS12RTM) 中引入的。
Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData, DkmBasicInstructionSymbolInfo)

创建新的 DkmStackWalkFrame 对象实例。

         此 API 是在 Visual Studio 16 RTM (VS16RTMPreview) 中引入的。

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>)

创建新的 DkmStackWalkFrame 对象实例。

public:
 static Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame ^ Create(Microsoft::VisualStudio::Debugger::DkmThread ^ Thread, Microsoft::VisualStudio::Debugger::DkmInstructionAddress ^ InstructionAddress, System::UInt64 FrameBase, System::UInt32 FrameSize, Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrameFlags Flags, System::String ^ Description, Microsoft::VisualStudio::Debugger::CallStack::DkmFrameRegisters ^ Registers, System::Collections::ObjectModel::ReadOnlyCollection<Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrameAnnotation ^> ^ Annotations);
public static Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame Create (Microsoft.VisualStudio.Debugger.DkmThread Thread, Microsoft.VisualStudio.Debugger.DkmInstructionAddress InstructionAddress, ulong FrameBase, uint FrameSize, Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameFlags Flags, string Description, Microsoft.VisualStudio.Debugger.CallStack.DkmFrameRegisters Registers, System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameAnnotation> Annotations);
static member Create : Microsoft.VisualStudio.Debugger.DkmThread * Microsoft.VisualStudio.Debugger.DkmInstructionAddress * uint64 * uint32 * Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameFlags * string * Microsoft.VisualStudio.Debugger.CallStack.DkmFrameRegisters * System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameAnnotation> -> Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame
Public Shared Function Create (Thread As DkmThread, InstructionAddress As DkmInstructionAddress, FrameBase As ULong, FrameSize As UInteger, Flags As DkmStackWalkFrameFlags, Description As String, Registers As DkmFrameRegisters, Annotations As ReadOnlyCollection(Of DkmStackWalkFrameAnnotation)) As DkmStackWalkFrame

参数

Thread
DkmThread

中此堆栈帧所在的线程。

InstructionAddress
DkmInstructionAddress

[In,可选]此帧的指令。 对于带批注的帧可以省略此情况。

FrameBase
UInt64

中帧的基堆栈指针。 SDM 使用此方法对帧进行排序,堆栈合并使用它来评估进度,因此,甚至对于带批注的帧,此值也是必需的。 仅当调试对象的堆栈损坏时,此值才有效。

FrameSize
UInt32

中此帧使用的堆栈的字节数。 对于带批注的帧,此值将为零; 如果该值未知,则为零。

Flags
DkmStackWalkFrameFlags

中标记 DkmStackWalkFrame 的属性。

Description
String

[In,可选]将在 "调用堆栈" 窗口中显示的帧的说明。 这应该为带批注的帧提供。

Registers
DkmFrameRegisters

[In,可选]遍历帧的寄存器。 应为非批注框架提供这些。

Annotations
ReadOnlyCollection<DkmStackWalkFrameAnnotation>

[In,可选]堆栈帧批注的只读集合。 这些是由展开器定义的,并特定于该展开器。 示例用法是将内联帧数据从内联堆栈筛选器传递到格式化程序的方式。

返回

DkmStackWalkFrame

弄此方法调用的结果。

适用于

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData)

创建新的 DkmStackWalkFrame 对象实例。

         此 API 是在 Visual Studio 12 RTM (VS12RTM) 中引入的。
public:
 static Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame ^ Create(Microsoft::VisualStudio::Debugger::DkmThread ^ Thread, Microsoft::VisualStudio::Debugger::DkmInstructionAddress ^ InstructionAddress, System::UInt64 FrameBase, System::UInt32 FrameSize, Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrameFlags Flags, System::String ^ Description, Microsoft::VisualStudio::Debugger::CallStack::DkmFrameRegisters ^ Registers, System::Collections::ObjectModel::ReadOnlyCollection<Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrameAnnotation ^> ^ Annotations, Microsoft::VisualStudio::Debugger::DkmModuleInstance ^ AnnotatedModule, Microsoft::VisualStudio::Debugger::CallStack::DkmAsyncStackWalkContext ^ AsyncContext, Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrameData ^ Data);
public static Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame Create (Microsoft.VisualStudio.Debugger.DkmThread Thread, Microsoft.VisualStudio.Debugger.DkmInstructionAddress InstructionAddress, ulong FrameBase, uint FrameSize, Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameFlags Flags, string Description, Microsoft.VisualStudio.Debugger.CallStack.DkmFrameRegisters Registers, System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameAnnotation> Annotations, Microsoft.VisualStudio.Debugger.DkmModuleInstance AnnotatedModule, Microsoft.VisualStudio.Debugger.CallStack.DkmAsyncStackWalkContext AsyncContext, Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameData Data);
static member Create : Microsoft.VisualStudio.Debugger.DkmThread * Microsoft.VisualStudio.Debugger.DkmInstructionAddress * uint64 * uint32 * Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameFlags * string * Microsoft.VisualStudio.Debugger.CallStack.DkmFrameRegisters * System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameAnnotation> * Microsoft.VisualStudio.Debugger.DkmModuleInstance * Microsoft.VisualStudio.Debugger.CallStack.DkmAsyncStackWalkContext * Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameData -> Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame
Public Shared Function Create (Thread As DkmThread, InstructionAddress As DkmInstructionAddress, FrameBase As ULong, FrameSize As UInteger, Flags As DkmStackWalkFrameFlags, Description As String, Registers As DkmFrameRegisters, Annotations As ReadOnlyCollection(Of DkmStackWalkFrameAnnotation), AnnotatedModule As DkmModuleInstance, AsyncContext As DkmAsyncStackWalkContext, Data As DkmStackWalkFrameData) As DkmStackWalkFrame

参数

Thread
DkmThread

中此堆栈帧所在的线程。

InstructionAddress
DkmInstructionAddress

[In,可选]此帧的指令。 对于带批注的帧可以省略此情况。

FrameBase
UInt64

中帧的基堆栈指针。 SDM 使用此方法对帧进行排序,堆栈合并使用它来评估进度,因此,甚至对于带批注的帧,此值也是必需的。 仅当调试对象的堆栈损坏时,此值才有效。

FrameSize
UInt32

中此帧使用的堆栈的字节数。 对于带批注的帧,此值将为零; 如果该值未知,则为零。

Flags
DkmStackWalkFrameFlags

中标记 DkmStackWalkFrame 的属性。

Description
String

[In,可选]将在 "调用堆栈" 窗口中显示的帧的说明。 这应该为带批注的帧提供。

Registers
DkmFrameRegisters

[In,可选]遍历帧的寄存器。 应为非批注框架提供这些。

Annotations
ReadOnlyCollection<DkmStackWalkFrameAnnotation>

[In,可选]堆栈帧批注的只读集合。 这些是由展开器定义的,并特定于该展开器。 示例用法是将内联帧数据从内联堆栈筛选器传递到格式化程序的方式。

AnnotatedModule
DkmModuleInstance

[In,可选]如果有带批注的帧,则指定与此帧关联的可选模块实例。 如果存在,则用户可以通过在 "调用堆栈" 窗口中右键单击此帧来加载此模块的二进制文件或符号。 对于非批注框架,此值为 NULL。

AsyncContext
DkmAsyncStackWalkContext

[In,可选]用于遍历异步返回堆栈和任务创建堆栈的可选上下文。

Data
DkmStackWalkFrameData

[In,可选]要附加到 DkmStackWalkFrame 的可选对象,允许组件将其他专用数据与帧关联。

返回

DkmStackWalkFrame

弄此方法调用的结果。

适用于

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData, DkmBasicInstructionSymbolInfo)

创建新的 DkmStackWalkFrame 对象实例。

         此 API 是在 Visual Studio 16 RTM (VS16RTMPreview) 中引入的。
public:
 static Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame ^ Create(Microsoft::VisualStudio::Debugger::DkmThread ^ Thread, Microsoft::VisualStudio::Debugger::DkmInstructionAddress ^ InstructionAddress, System::UInt64 FrameBase, System::UInt32 FrameSize, Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrameFlags Flags, System::String ^ Description, Microsoft::VisualStudio::Debugger::CallStack::DkmFrameRegisters ^ Registers, System::Collections::ObjectModel::ReadOnlyCollection<Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrameAnnotation ^> ^ Annotations, Microsoft::VisualStudio::Debugger::DkmModuleInstance ^ AnnotatedModule, Microsoft::VisualStudio::Debugger::CallStack::DkmAsyncStackWalkContext ^ AsyncContext, Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrameData ^ Data, Microsoft::VisualStudio::Debugger::Symbols::DkmBasicInstructionSymbolInfo ^ BasicSymbolInfo);
public static Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame Create (Microsoft.VisualStudio.Debugger.DkmThread Thread, Microsoft.VisualStudio.Debugger.DkmInstructionAddress InstructionAddress, ulong FrameBase, uint FrameSize, Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameFlags Flags, string Description, Microsoft.VisualStudio.Debugger.CallStack.DkmFrameRegisters Registers, System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameAnnotation> Annotations, Microsoft.VisualStudio.Debugger.DkmModuleInstance AnnotatedModule, Microsoft.VisualStudio.Debugger.CallStack.DkmAsyncStackWalkContext AsyncContext, Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameData Data, Microsoft.VisualStudio.Debugger.Symbols.DkmBasicInstructionSymbolInfo BasicSymbolInfo);
static member Create : Microsoft.VisualStudio.Debugger.DkmThread * Microsoft.VisualStudio.Debugger.DkmInstructionAddress * uint64 * uint32 * Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameFlags * string * Microsoft.VisualStudio.Debugger.CallStack.DkmFrameRegisters * System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameAnnotation> * Microsoft.VisualStudio.Debugger.DkmModuleInstance * Microsoft.VisualStudio.Debugger.CallStack.DkmAsyncStackWalkContext * Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrameData * Microsoft.VisualStudio.Debugger.Symbols.DkmBasicInstructionSymbolInfo -> Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame
Public Shared Function Create (Thread As DkmThread, InstructionAddress As DkmInstructionAddress, FrameBase As ULong, FrameSize As UInteger, Flags As DkmStackWalkFrameFlags, Description As String, Registers As DkmFrameRegisters, Annotations As ReadOnlyCollection(Of DkmStackWalkFrameAnnotation), AnnotatedModule As DkmModuleInstance, AsyncContext As DkmAsyncStackWalkContext, Data As DkmStackWalkFrameData, BasicSymbolInfo As DkmBasicInstructionSymbolInfo) As DkmStackWalkFrame

参数

Thread
DkmThread

中此堆栈帧所在的线程。

InstructionAddress
DkmInstructionAddress

[In,可选]此帧的指令。 对于带批注的帧可以省略此情况。

FrameBase
UInt64

中帧的基堆栈指针。 SDM 使用此方法对帧进行排序,堆栈合并使用它来评估进度,因此,甚至对于带批注的帧,此值也是必需的。 仅当调试对象的堆栈损坏时,此值才有效。

FrameSize
UInt32

中此帧使用的堆栈的字节数。 对于带批注的帧,此值将为零; 如果该值未知,则为零。

Flags
DkmStackWalkFrameFlags

中标记 DkmStackWalkFrame 的属性。

Description
String

[In,可选]将在 "调用堆栈" 窗口中显示的帧的说明。 这应该为带批注的帧提供。

Registers
DkmFrameRegisters

[In,可选]遍历帧的寄存器。 应为非批注框架提供这些。

Annotations
ReadOnlyCollection<DkmStackWalkFrameAnnotation>

[In,可选]堆栈帧批注的只读集合。 这些是由展开器定义的,并特定于该展开器。 示例用法是将内联帧数据从内联堆栈筛选器传递到格式化程序的方式。

AnnotatedModule
DkmModuleInstance

[In,可选]如果有带批注的帧,则指定与此帧关联的可选模块实例。 如果存在,则用户可以通过在 "调用堆栈" 窗口中右键单击此帧来加载此模块的二进制文件或符号。 对于非批注框架,此值为 NULL。

AsyncContext
DkmAsyncStackWalkContext

[In,可选]用于遍历异步返回堆栈和任务创建堆栈的可选上下文。

Data
DkmStackWalkFrameData

[In,可选]要附加到 DkmStackWalkFrame 的可选对象,允许组件将其他专用数据与帧关联。

BasicSymbolInfo
DkmBasicInstructionSymbolInfo

[In,可选]包含与帧的 InstructionAddress 相对应的 DkmInstructionSymbol 的基本信息。 对于本机帧,这将由 StackProvider 在帧传递到堆栈筛选器之前计算。

对于 DkmStackFrame,这将始终为 null。

返回

DkmStackWalkFrame

弄此方法调用的结果。

适用于