DkmStepper.Create 方法

定义

重载

Create(DkmThread, DkmInstructionAddress, UInt64, DkmStepKind, DkmStepUnit, Guid, DkmSteppingCodePath, DkmStepper, DkmDataItem)

DkmStepper 对象由要发出步骤的组件创建。 用户级步进器由 AD7-AL 创建。 若要初始化步进器对象,必须调用 Enable。 步进器对象将一直持续到步骤完成或中止。

Create(DkmThread, DkmInstructionAddress, UInt64, DkmStepKind, DkmStepUnit, Guid, DkmSteppingCodePath, DkmStepper, Boolean, ReadOnlyCollection<DkmSteppingCodePath>, String, DkmDataItem)

DkmStepper 对象由要发出步骤的组件创建。 用户级步进器由 AD7-AL 创建。 若要初始化步进器对象,必须调用 Enable。 步进器对象将一直持续到步骤完成或中止。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

Create(DkmThread, DkmInstructionAddress, UInt64, DkmStepKind, DkmStepUnit, Guid, DkmSteppingCodePath, DkmStepper, DkmDataItem)

DkmStepper 对象由要发出步骤的组件创建。 用户级步进器由 AD7-AL 创建。 若要初始化步进器对象,必须调用 Enable。 步进器对象将一直持续到步骤完成或中止。

public:
 static Microsoft::VisualStudio::Debugger::Stepping::DkmStepper ^ Create(Microsoft::VisualStudio::Debugger::DkmThread ^ Thread, Microsoft::VisualStudio::Debugger::DkmInstructionAddress ^ StartingAddress, System::UInt64 FrameBase, Microsoft::VisualStudio::Debugger::Stepping::DkmStepKind StepKind, Microsoft::VisualStudio::Debugger::Stepping::DkmStepUnit StepUnit, Guid SourceId, Microsoft::VisualStudio::Debugger::Stepping::DkmSteppingCodePath ^ CodePath, Microsoft::VisualStudio::Debugger::Stepping::DkmStepper ^ CrossThreadParent, Microsoft::VisualStudio::Debugger::DkmDataItem ^ DataItem);
public static Microsoft.VisualStudio.Debugger.Stepping.DkmStepper Create (Microsoft.VisualStudio.Debugger.DkmThread Thread, Microsoft.VisualStudio.Debugger.DkmInstructionAddress StartingAddress, ulong FrameBase, Microsoft.VisualStudio.Debugger.Stepping.DkmStepKind StepKind, Microsoft.VisualStudio.Debugger.Stepping.DkmStepUnit StepUnit, Guid SourceId, Microsoft.VisualStudio.Debugger.Stepping.DkmSteppingCodePath CodePath, Microsoft.VisualStudio.Debugger.Stepping.DkmStepper CrossThreadParent, Microsoft.VisualStudio.Debugger.DkmDataItem DataItem);
public static Microsoft.VisualStudio.Debugger.Stepping.DkmStepper Create (Microsoft.VisualStudio.Debugger.DkmThread Thread, Microsoft.VisualStudio.Debugger.DkmInstructionAddress? StartingAddress, ulong FrameBase, Microsoft.VisualStudio.Debugger.Stepping.DkmStepKind StepKind, Microsoft.VisualStudio.Debugger.Stepping.DkmStepUnit StepUnit, Guid SourceId, Microsoft.VisualStudio.Debugger.Stepping.DkmSteppingCodePath? CodePath, Microsoft.VisualStudio.Debugger.Stepping.DkmStepper? CrossThreadParent, Microsoft.VisualStudio.Debugger.DkmDataItem? DataItem);
static member Create : Microsoft.VisualStudio.Debugger.DkmThread * Microsoft.VisualStudio.Debugger.DkmInstructionAddress * uint64 * Microsoft.VisualStudio.Debugger.Stepping.DkmStepKind * Microsoft.VisualStudio.Debugger.Stepping.DkmStepUnit * Guid * Microsoft.VisualStudio.Debugger.Stepping.DkmSteppingCodePath * Microsoft.VisualStudio.Debugger.Stepping.DkmStepper * Microsoft.VisualStudio.Debugger.DkmDataItem -> Microsoft.VisualStudio.Debugger.Stepping.DkmStepper
Public Shared Function Create (Thread As DkmThread, StartingAddress As DkmInstructionAddress, FrameBase As ULong, StepKind As DkmStepKind, StepUnit As DkmStepUnit, SourceId As Guid, CodePath As DkmSteppingCodePath, CrossThreadParent As DkmStepper, DataItem As DkmDataItem) As DkmStepper

参数

Thread
DkmThread

[In]DkmThread 表示在目标进程中运行的线程。

StartingAddress
DkmInstructionAddress

[In,Optional]启动此步骤时进程的指令地址。 如果步骤源自没有帧 (脚本 & 仅托管) 的线程上,则该步骤将为 NULL。

FrameBase
UInt64

[In]步骤开始时第一个帧的框架基。 如果未指定 StartingAddress,则将MAXUINT64此值。

StepKind
DkmStepKind

[In]DkmStepKind 介绍如何在调用 Step 方法时单步执行线程。

StepUnit
DkmStepUnit

[In]DkmStepUnit 描述调用 Step 方法时步骤的粒度。

SourceId
Guid

[In]标识对象的源。 SourceId 用于在多个组件可能创建类实例的情况下启用筛选。 例如,源 ID 可用于确定断点是来自 AD7 AL (例如用户断点,还是来自 SDM 级别) 可见的其他断点,而不是可能由其他组件创建的断点 (例如用于单步) 的内部断点。

CodePath
DkmSteppingCodePath

[In,Optional]如果 StepKind 是 StepIntoSpecific,则指定要单步执行哪个调用。 否则为 NULL。

CrossThreadParent
DkmStepper

[In,Optional]如果使用 OnCrossThreadStepArbitration 创建新的步进器,则单步执行管理器将设置此字段,使跨线程步骤失败或需要回退时可以轻松返回到原始步进器。 已弃用。 请改用 GetCrossThreadParent。

DataItem
DkmDataItem

[In,Optional]要添加到新 DkmStepper 实例的数据对象。 如果调用方不需要添加数据项,则传递“null”。

返回

[Out]此方法调用的结果。

适用于

Create(DkmThread, DkmInstructionAddress, UInt64, DkmStepKind, DkmStepUnit, Guid, DkmSteppingCodePath, DkmStepper, Boolean, ReadOnlyCollection<DkmSteppingCodePath>, String, DkmDataItem)

DkmStepper 对象由要发出步骤的组件创建。 用户级步进器由 AD7-AL 创建。 若要初始化步进器对象,必须调用 Enable。 步进器对象将一直持续到步骤完成或中止。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

public:
 static Microsoft::VisualStudio::Debugger::Stepping::DkmStepper ^ Create(Microsoft::VisualStudio::Debugger::DkmThread ^ Thread, Microsoft::VisualStudio::Debugger::DkmInstructionAddress ^ StartingAddress, System::UInt64 FrameBase, Microsoft::VisualStudio::Debugger::Stepping::DkmStepKind StepKind, Microsoft::VisualStudio::Debugger::Stepping::DkmStepUnit StepUnit, Guid SourceId, Microsoft::VisualStudio::Debugger::Stepping::DkmSteppingCodePath ^ CodePath, Microsoft::VisualStudio::Debugger::Stepping::DkmStepper ^ CrossThreadParent, bool ShouldCaptureReturnValue, System::Collections::ObjectModel::ReadOnlyCollection<Microsoft::VisualStudio::Debugger::Stepping::DkmSteppingCodePath ^> ^ CurrentCodePaths, System::String ^ CurrentMethodName, Microsoft::VisualStudio::Debugger::DkmDataItem ^ DataItem);
public static Microsoft.VisualStudio.Debugger.Stepping.DkmStepper Create (Microsoft.VisualStudio.Debugger.DkmThread Thread, Microsoft.VisualStudio.Debugger.DkmInstructionAddress StartingAddress, ulong FrameBase, Microsoft.VisualStudio.Debugger.Stepping.DkmStepKind StepKind, Microsoft.VisualStudio.Debugger.Stepping.DkmStepUnit StepUnit, Guid SourceId, Microsoft.VisualStudio.Debugger.Stepping.DkmSteppingCodePath CodePath, Microsoft.VisualStudio.Debugger.Stepping.DkmStepper CrossThreadParent, bool ShouldCaptureReturnValue, System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.Stepping.DkmSteppingCodePath> CurrentCodePaths, string CurrentMethodName, Microsoft.VisualStudio.Debugger.DkmDataItem DataItem);
public static Microsoft.VisualStudio.Debugger.Stepping.DkmStepper Create (Microsoft.VisualStudio.Debugger.DkmThread Thread, Microsoft.VisualStudio.Debugger.DkmInstructionAddress? StartingAddress, ulong FrameBase, Microsoft.VisualStudio.Debugger.Stepping.DkmStepKind StepKind, Microsoft.VisualStudio.Debugger.Stepping.DkmStepUnit StepUnit, Guid SourceId, Microsoft.VisualStudio.Debugger.Stepping.DkmSteppingCodePath? CodePath, Microsoft.VisualStudio.Debugger.Stepping.DkmStepper? CrossThreadParent, bool ShouldCaptureReturnValue, System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.Stepping.DkmSteppingCodePath>? CurrentCodePaths, string? CurrentMethodName, Microsoft.VisualStudio.Debugger.DkmDataItem? DataItem);
static member Create : Microsoft.VisualStudio.Debugger.DkmThread * Microsoft.VisualStudio.Debugger.DkmInstructionAddress * uint64 * Microsoft.VisualStudio.Debugger.Stepping.DkmStepKind * Microsoft.VisualStudio.Debugger.Stepping.DkmStepUnit * Guid * Microsoft.VisualStudio.Debugger.Stepping.DkmSteppingCodePath * Microsoft.VisualStudio.Debugger.Stepping.DkmStepper * bool * System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.Stepping.DkmSteppingCodePath> * string * Microsoft.VisualStudio.Debugger.DkmDataItem -> Microsoft.VisualStudio.Debugger.Stepping.DkmStepper
Public Shared Function Create (Thread As DkmThread, StartingAddress As DkmInstructionAddress, FrameBase As ULong, StepKind As DkmStepKind, StepUnit As DkmStepUnit, SourceId As Guid, CodePath As DkmSteppingCodePath, CrossThreadParent As DkmStepper, ShouldCaptureReturnValue As Boolean, CurrentCodePaths As ReadOnlyCollection(Of DkmSteppingCodePath), CurrentMethodName As String, DataItem As DkmDataItem) As DkmStepper

参数

Thread
DkmThread

[In]DkmThread 表示在目标进程中运行的线程。

StartingAddress
DkmInstructionAddress

[In,Optional]启动此步骤时进程的指令地址。 如果步骤源自没有帧 (脚本 & 仅托管) 的线程上,则该步骤将为 NULL。

FrameBase
UInt64

[In]步骤开始时第一个帧的框架基。 如果未指定 StartingAddress,则将MAXUINT64此值。

StepKind
DkmStepKind

[In]DkmStepKind 介绍如何在调用 Step 方法时单步执行线程。

StepUnit
DkmStepUnit

[In]DkmStepUnit 描述调用 Step 方法时步骤的粒度。

SourceId
Guid

[In]标识对象的源。 SourceId 用于在多个组件可能创建类实例的情况下启用筛选。 例如,源 ID 可用于确定断点是来自 AD7 AL (例如用户断点,还是来自 SDM 级别) 可见的其他断点,而不是可能由其他组件创建的断点 (例如用于单步) 的内部断点。

CodePath
DkmSteppingCodePath

[In,Optional]如果 StepKind 是 StepIntoSpecific,则指定要单步执行哪个调用。 否则为 NULL。

CrossThreadParent
DkmStepper

[In,Optional]如果使用 OnCrossThreadStepArbitration 创建新的步进器,则单步执行管理器将设置此字段,使跨线程步骤失败或需要回退时可以轻松返回到原始步进器。 已弃用。 请改用 GetCrossThreadParent。

ShouldCaptureReturnValue
Boolean

[In]在托管调试中,它指示步进器是否要在单步执行期间捕获返回值。 默认值为 false。

CurrentCodePaths
ReadOnlyCollection<DkmSteppingCodePath>

[In,Optional]在托管调试中,它包含当前步骤范围内的所有代码路径。 否则为 NULL。

CurrentMethodName
String

[In,Optional]在托管调试中,它包含当前方法名称。 否则为 NULL。

DataItem
DkmDataItem

[In,Optional]要添加到新 DkmStepper 实例的数据对象。 如果调用方不需要添加数据项,则传递“null”。

返回

[Out]此方法调用的结果。

适用于