次の方法で共有


DkmStackFrame クラス

定義

DkmStackFrame は、フィルター処理と変換後の呼び出し履歴上のフレームを表します。

public ref class DkmStackFrame : Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmStackFrame : Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
class DkmStackFrame : Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame
[System.Runtime.InteropServices.Guid("9e32fe11-196e-a0ec-b83c-0792427e91a2")]
public class DkmStackFrame : Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame
[<System.Runtime.InteropServices.Guid("9e32fe11-196e-a0ec-b83c-0792427e91a2")>]
type DkmStackFrame = class
    inherit DkmStackWalkFrame
Public Class DkmStackFrame
Inherits DkmStackWalkFrame
継承
DkmStackFrame
属性

プロパティ

AnnotatedModule

[省略可能]注釈付きフレームがある場合は、このフレームに関連付けるオプションのモジュール インスタンスを指定します。 存在する場合、ユーザーは呼び出し履歴ウィンドウでこのフレームを右クリックして、このモジュールのバイナリまたはシンボルを読み込むことができます。 注釈なしのフレームの場合、これは NULL です。

この API は、Visual Studio 12 RTM (DkmApiVersion.VS12RTM) で導入されました。

(継承元 DkmStackWalkFrame)
Annotations

[省略可能]スタック フレーム注釈の読み取り専用コレクション。 これらはアンワインダーによって定義され、そのアンワインダーに固有です。 使用例は、インライン フレーム データをインライン スタック フィルターからフォーマッタに渡す方法です。

(継承元 DkmStackWalkFrame)
AsyncContext

[省略可能]非同期の戻りスタックとタスク作成スタックをウォークするための省略可能なコンテキスト。

この API は、Visual Studio 12 RTM (DkmApiVersion.VS12RTM) で導入されました。

(継承元 DkmStackWalkFrame)
BasicSymbolInfo

[省略可能]フレームの InstructionAddress に対応する DkmInstructionSymbol に関する基本情報が含まれています。 ネイティブ フレームの場合、フレームがスタック フィルターに渡される前に StackProvider によって計算されます。

DkmStackFrame の場合、これは常に null になります。

この API は、Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview) で導入されました。

(継承元 DkmStackWalkFrame)
CompilerId

このスタック フレームのコードを生成したコンパイラの LanguageId/VendorId。 これが不明な場合 (このモジュールに読み込まれたシンボルがない場合など)、両方の値は Guid.Empty になります。 それ以外の場合は、両方の値を 0 以外にする必要があります。

Connection

これは、モニターと IDE の間の接続を表します。 モニターが IDE と同じプロセスで実行されている場合はローカル接続にすることも、リモート接続にすることもできます。 監視プロセスでは、接続は 1 つだけです。

(継承元 DkmStackWalkFrame)
Data

[省略可能]DkmStackWalkFrame にアタッチする省略可能なオブジェクト。コンポーネントは、追加のプライベート データをフレームに関連付けることができます。

この API は、Visual Studio 12 RTM (DkmApiVersion.VS12RTM) で導入されました。

(継承元 DkmStackWalkFrame)
Description

[省略可能]呼び出し履歴ウィンドウに表示されるフレームの説明。 これは、注釈付きフレームに対して指定する必要があります。

(継承元 DkmStackWalkFrame)
Flags

DkmStackWalkFrame のプロパティにフラグを設定します。

(継承元 DkmStackWalkFrame)
FrameBase

フレームのベース スタック ポインター。 これは SDM によってフレームを並べ替えるために使用され、スタック マージャーによってウォークの進行状況を評価するために使用されるため、注釈付きフレームでもこの値が必要です。 この値は、デバッグ対象のスタックが破損している場合にのみ無効にする必要があります。

(継承元 DkmStackWalkFrame)
FrameName

スタック フレームの名前。 DkmStackFrame.FormatOptions は、関数名の形式を決定します。

FrameSize

このフレームで使用されるスタックのバイト数。 注釈付きフレームの場合、または値が不明な場合、この値は 0 になります。

(継承元 DkmStackWalkFrame)
InstructionAddress

[省略可能]このフレームの命令。 これは、注釈付きフレームでは省略できます。

(継承元 DkmStackWalkFrame)
IsStale

エディット コンティニュの後に、このスタック フレームが古いかどうかを指定します。

この API は、Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6) で導入されました。

ModuleInstance

[省略可能]このアドレスを含むモジュール。 モジュールのないアドレスは、(カスタム アドレスの場合でも) シンボルを持つことはできません。 CLR アドレスには常にモジュールがあります。 CPU が無効なアドレス (NULL など) にジャンプした場合、または CPU が動的に出力されたコードを実行している場合、ネイティブ アドレスにはモジュールがありません。

(継承元 DkmStackWalkFrame)
Options

スタック プロバイダーが DkmStackFrame の書式を設定する方法に影響を与える設定のコレクション。

Priority

スタック ウォーク フレームの優先度。 これは通常、問題を検出した注釈付きフレームに使用されます。

この API は、Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) で導入されました。

(継承元 DkmStackWalkFrame)
Process

DkmProcess は、デバッグ中のターゲット プロセスを表します。 デバッガーはプロセスをデバッグするため、これはデバッグの基本的な単位です。 DkmProcess は、システム プロセスまたはミニダンプなどの仮想プロセスを表すことができます。

(継承元 DkmStackWalkFrame)
Registers

[省略可能]ウォークされたフレームのレジスタ。 これらは、注釈のないフレームに対して指定する必要があります。

(継承元 DkmStackWalkFrame)
ReturnType

[省略可能]スタック フレームの戻り値の型の名前。 これは、DkmFrameNameFormatOptions.ReturnTypeField が設定されている場合にのみ提供されます。

RuntimeInstance

[省略可能]DkmRuntimeInstance クラスは、DkmProcess に読み込まれ、デバッグするコードを含む実行環境を表します。

(継承元 DkmStackWalkFrame)
SourcePosition

[省略可能]このスタック フレームのソース コードの場所。 これは、DkmFrameNameFormatOptions.DocumentPositionField が設定されている場合にのみ提供されます。

Thread

このスタック フレームがオンになっているスレッド。

(継承元 DkmStackWalkFrame)
UniqueId

DkmStackWalkFrame の一意識別子。 リモート デバッグシナリオでは、フレームが古い IDE/リモート デバッガーからマーシャリングされた場合、これはGUID_NULL/Guid.Empty になります。

この API は、Visual Studio 16 Update 10 (DkmApiVersion.VS16Update10) で導入されました。

(継承元 DkmStackWalkFrame)

メソッド

CanSetNextStatement(DkmInstructionAddress)

CanSetNextStatement は、スタック フレームの IP を移動できるかどうかを判断します。 スタック フレームは、常に特定のスレッド上のリーフ スタック フレームです。 この API は、エンジン プロセス内でのみ実装できます。 Result out パラメーターは、UI がエラー メッセージにマップできるS_OKまたは失敗した HRESULT の値である必要があります。

場所の制約: API は IDE コンポーネント (コンポーネント レベル > 100,000) から呼び出す必要があります。

(継承元 DkmStackWalkFrame)
ComputeUserStatus(DkmInspectionSession, Boolean)

フレームがユーザー コードであるかどうかを判断します。

場所の制約: API は IDE コンポーネント (コンポーネント レベル > 100,000) から呼び出す必要があります。

この API は、Visual Studio 12 RTM (DkmApiVersion.VS12RTM) で導入されました。

(継承元 DkmStackWalkFrame)
Create(DkmStackWalkFrame, DkmFrameFormatOptions, DkmCompilerId, String, String, DkmSourcePosition)

新しい DkmStackFrame オブジェクト インスタンスをCreateします。

場所の制約: API は IDE コンポーネント (コンポーネント レベル > 100,000) から呼び出す必要があります。

Create(DkmStackWalkFrame, DkmFrameFormatOptions, DkmCompilerId, String, String, DkmSourcePosition, Boolean)

新しい DkmStackFrame オブジェクト インスタンスをCreateします。

場所の制約: API は IDE コンポーネント (コンポーネント レベル > 100,000) から呼び出す必要があります。

この API は、Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6) で導入されました。

ExtractFromAD7Object(IDebugStackFrame2)

AD7 スタック フレーム オブジェクトから DkmStackFrame を取得します。 この API は、デバッグされたプロセスに関するより詳細な情報を取得するために、コンコード API にアクセスする Visual Studio パッケージまたはアドインによって使用されます。 この API は、Visual Studio のメイン スレッドからのみ正しく機能します。

ExtractFromDTEObject(StackFrame)

DTE (デバッガーオートメーション) スタック フレーム オブジェクトから DkmStackFrame を取得します。 この API は、デバッグされたプロセスに関するより詳細な情報を取得するために、コンコード API にアクセスする Visual Studio パッケージまたはアドインによって使用されます。 オートメーション オブジェクトは、多くの場合、'OnContextChanged' オートメーション イベントまたは Debugger.CurrentStackFrame プロパティから取得されます。 この API は、Visual Studio のメイン スレッドからのみ正しく機能します。

Format(DkmInspectionSession, DkmFrameFormatOptions)

DkmStackWalkFrame を DkmStackFrame に書式設定します。 フレームの書式設定は、GetNextFrames 中にスタック プロバイダーが行う処理の 1 つのステップです。 このメソッドを使用すると、GetNextFrames でスタック プロバイダーによって最初に実行された方法とは異なる方法でフレームを書式設定できます。

場所の制約: API は IDE コンポーネント (コンポーネント レベル > 100,000) から呼び出す必要があります。

(継承元 DkmStackWalkFrame)
GetClrGenericParameters()

アセンブリ修飾名の一覧として、現在のスタック フレームのジェネリック パラメーターを取得します。

この API は、Visual Studio 14 RTM (DkmApiVersion.VS14RTM) で導入されました。

(継承元 DkmStackWalkFrame)
GetClrGenericParameters(DkmWorkList, DkmCompletionRoutine<DkmGetClrGenericParametersAsyncResult>)

アセンブリ修飾名の一覧として、現在のスタック フレームのジェネリック パラメーターを取得します。

このメソッドは、指定した作業リストに新しい作業項目を追加し、作業項目が追加されると を返します。 作業項目の実際の処理は非同期です。 呼び出し元は、完了ルーチンを通じて要求が完了したことを通知されます。

この API は、Visual Studio 14 RTM (DkmApiVersion.VS14RTM) で導入されました。

(継承元 DkmStackWalkFrame)
GetEffectiveAddresses(DkmInstructionAddress)

要求されたアドレスの有効なアドレスを計算して返すメソッド。 有効アドレスは、命令オペランドが表す計算アドレスです。 たとえば、x86 では、命令は dwordptr [esp-12] の形式になります。 このオペランドの有効アドレスは、esp から 12 を減算した結果になります。オペランドと有効アドレスの数はアーキテクチャ固有です。

場所の制約: API は IDE コンポーネント (コンポーネント レベル > 100,000) から呼び出す必要があります。

GetInspectionInterface(DkmInspectionSession, Guid)

GetInspectionInterface は、スタック フレームを詳細に検査するためにコンポーネントが使用できる ICorDebugFrame またはその他の実装固有のインターフェイスを取得するために使用されます。

返されるインターフェイスは、ターゲット プロセスの検査にのみ使用できます。実行の制御には使用しないでください (ステップ実行なし、ブレークポイントなし、続行なしなど)。 これはサポートされていないため、未定義の動作になります。 注: パフォーマンス上の理由から、マネージド コードからこのメソッドを使用することはお勧めしません。 ネイティブ コードとマネージド コードの間での DkmStackWalkFrame のマーシャリングにはコストがかかります。 代わりに DkmRuntimeInstance.GetFrameInspectionInterface を使用してください。

場所の制約: この API は、ターゲット ランタイムがスタック ウォークを実装するのと同じプロセス、またはシンボルが読み込まれるのと同じプロセスから呼び出す必要があります。 マネージド デバッグの場合、これは、64 ビットまたはリモート プロセスをデバッグするときに、デバッグ モニター コンポーネントからこの API を呼び出す必要があることを意味します。

(継承元 DkmStackWalkFrame)
GetInstructionSymbol()

スタック フレームの DkmInstructionSymbol を返します。 スタック フレームに命令アドレス (注釈付きフレーム) がない場合、または命令アドレスに DkmModule が関連付けられていない場合、GetInstructionSymbol は null (ネイティブ コードではS_FALSE) を返します。

(継承元 DkmStackWalkFrame)
GetProperty(ICorDebugValue, String)

指定された ICorDebugValue のプロパティを評価します。 値の型は、この$Name$ が呼び出されている DkmStackWalkFrame の DkmClrAppDomain によって読み込まれる必要があります。

場所の制約: ICorDebugHandleValue を渡しているため、これはリモート側にある必要があります。

この API は、Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3) で導入されました。

(継承元 DkmStackWalkFrame)
GetUnwindAddress(DkmInstructionAddress)

例外がこのフレームにインターセプトされた場合の場所を表すアドレスを返します。

(継承元 DkmStackWalkFrame)
InterceptCurrentException(DkmExceptionInterceptActionFlags, UInt64)

InterceptCurrentException は、そのフレームに例外ハンドラーがあるかのように、このフレームにアンワインドするために使用されます。

(継承元 DkmStackWalkFrame)
OnSetNextStatementCompleted(DkmInstructionAddress)

OnSetNextStatementCompleted は、set next ステートメントの完了後にコンポーネントが状態をクリアできるようにするための汎用メソッドです。 DkmStackWalkFrame は、SetNextStatement 呼び出しの前のフレームになります。

場所の制約: この API は通常、クライアント側コンポーネントからのみ呼び出す必要があります。 ただし、set next ステートメントがイベント ハンドラーから呼び出されている場合は、モニター側コンポーネントがこの API を呼び出しても安全です。

(継承元 DkmStackWalkFrame)
SetNextStatement(DkmInstructionAddress)

SetNextStatement は、スタック フレームの IP を移動します。 スタック フレームは、常に特定のスレッド上のリーフ スタック フレームです。

(継承元 DkmStackWalkFrame)

適用対象