次の方法で共有


DkmNativeInstructionSymbol クラス

定義

DkmNativeInstructionSymbol は、ターゲット プロセスのモジュール内のネイティブ命令を表します。 DkmNativeInstructionSymbol は、基になるネイティブ命令と共に 1:1 です。 そのため、リンカーが COMDAT フォールディングを介して 2 つのインスタンス化を 1 つの関数にマージした場合、メソッドの 2 つのテンプレートインスタンス化 (MyMethod<CString> と MyMethod<int> など) がある場合、メソッドは同じになります。 リンカーが 2 つのインスタンス化をマージできない場合、両方のユーザー レベル関数が 1 つの DkmNativeInstructionSymbol として表示されます。

public ref class DkmNativeInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmNativeInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
class DkmNativeInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[System.Runtime.InteropServices.Guid("0eb834ca-c591-449c-66ad-e016093977d2")]
public class DkmNativeInstructionSymbol : Microsoft.VisualStudio.Debugger.Symbols.DkmInstructionSymbol
[<System.Runtime.InteropServices.Guid("0eb834ca-c591-449c-66ad-e016093977d2")>]
type DkmNativeInstructionSymbol = class
    inherit DkmInstructionSymbol
Public Class DkmNativeInstructionSymbol
Inherits DkmInstructionSymbol
継承
DkmNativeInstructionSymbol
属性

プロパティ

Module

DkmModule クラスは、1 つ以上のプロセスに読み込まれたコード バンドル (dll または exe など) を表します。 DkmModule クラスはシンボル API の中心オブジェクトであり、読み込まれるもののシンボル ハンドラーの表記を使用して 1:1 です。 コード バンドルが 3 つの異なるプロセス (または同じプロセスで、3 つの異なるベース アドレスまたは 3 つの異なるアプリ ドメインを持つ) に読み込まれるが、シンボル ハンドラーがこれらすべてを同一と見なす場合、モジュール オブジェクトは 1 つだけになります。

(継承元 DkmInstructionSymbol)
RuntimeType

ランタイム ID は、特定のコードの実行環境を識別します。 ディスパッチャーによってランタイム ID が使用され、ディスパッチ先のモニターが決定されます。 ランタイム ID Guid の順序は、アービトレーション中に最初のショットを取得するランタイムが決まるので、やや重要であることに注意してください。 したがって、CLR 上に構築された新しいランタイム インスタンスを宣言する場合、ランタイム ID は DkmRuntimeId.Clr より小さくする必要があります。

(継承元 DkmInstructionSymbol)
RVA

モジュール内の InstructionPointer の RVA。

TagValue

DkmInstructionSymbol は抽象基本クラスです。 この列挙型は、このオブジェクトがどの派生クラスのインスタンスであるかを示します。

(継承元 DkmInstructionSymbol)

メソッド

Bind(DkmModuleInstance)

命令シンボルを特定のモジュール インスタンスにバインドします。 命令シンボルは DkmModuleInstance ではなく DkmModule に接続されているため、特定のプロセス、アプリ ドメイン、またはモジュールのベース アドレスにバインドされません。

(継承元 DkmInstructionSymbol)
Create(DkmModule, UInt32)

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

GetAlternateSourcePosition(DkmSourcePositionFlags)

この命令シンボルの代替ソース ファイルの位置 (例: example.cs、12 行目) を返します。 これは現在、元の (マップされていない) ソースの場所を返すために、ソース マップのシナリオで使用されています。 この API は、プライマリ ソースの場所が見つからない場合にデバッガー UI によって呼び出されます。

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

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

(継承元 DkmInstructionSymbol)
GetBasicInfo(DkmWorkList, DkmModuleInstance, DkmBasicSymbolInfoRequestFlags, DkmCompletionRoutine<DkmGetBasicSymbolInfoAsyncResult>)

特定の DkmInstructionSymbol の基本的なシンボル情報を非同期的に計算します。

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

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

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

(継承元 DkmInstructionSymbol)
GetCompilerId(DkmInspectionSession)

指定されたシンボルのコンパイラ ID (LanguageId/VendorId) を返します。

Microsoft PDB リーダーの場合、PDB が ISymUnmanagedWriter を使用するコンパイラによって作成された場合、PDB リーダーは、ISymUnmanagedWriter.DefineDocument から渡された LanguageId/VendorId ペアから正しい DkmCompilerId を特定できます。

PDB が ISymUnmanagedWriter を使用していないコンパイラによって作成された場合、PDB リーダーは、S_COMPILE* PDB レコードから DkmCompilerId を取得できる可能性があります。 これを機能させるには、コンパイラは最初に各コンパイル単位のS_COMPILE* レコードを出力する必要があります。 コンパイラは、言語列挙値とコンパイラ文字列を正しく入力する必要があります。 コンパイラは、コンパイラ文字列が式エバリュエーターの選択に使用するのに十分に固有であることを確認する必要があります。会社名を含めるのが推奨されます。 列挙型と名前のペアを生成した後、式エバリュエーターのセットアップで、このペアをデバッガーに登録する必要があります。 これを行うには、式エバリュエーターで次のレジストリ キー %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% を設定し、VendorId/LanguageId を定義する必要があります。

(継承元 DkmInstructionSymbol)
GetCompilerId(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetCompilerIdAsyncResult>)

指定されたシンボルのコンパイラ ID (LanguageId/VendorId) を返します。

Microsoft PDB リーダーの場合、PDB が ISymUnmanagedWriter を使用するコンパイラによって作成された場合、PDB リーダーは、ISymUnmanagedWriter.DefineDocument から渡された LanguageId/VendorId ペアから正しい DkmCompilerId を特定できます。

PDB が ISymUnmanagedWriter を使用していないコンパイラによって作成された場合、PDB リーダーは、S_COMPILE* PDB レコードから DkmCompilerId を取得できる可能性があります。 これを機能させるには、コンパイラは最初に各コンパイル単位のS_COMPILE* レコードを出力する必要があります。 コンパイラは、言語列挙値とコンパイラ文字列を正しく入力する必要があります。 コンパイラは、コンパイラ文字列が式エバリュエーターの選択に使用するのに十分に固有であることを確認する必要があります。会社名を含めるのが推奨されます。 列挙型と名前のペアを生成した後、式エバリュエーターのセットアップで、このペアをデバッガーに登録する必要があります。 これを行うには、式エバリュエーターで次のレジストリ キー %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% を設定し、VendorId/LanguageId を定義する必要があります。

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

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

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

(継承元 DkmInstructionSymbol)
GetCurrentStatementRange()

このメソッドは、命令アドレスで指定されている現在の IL オフセットを含む IL オフセット範囲を返します。

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

(継承元 DkmInstructionSymbol)
GetDisassemblyLabel(DkmInspectionSession)

逆アセンブリ ウィンドウに表示されるシンボルの名前を返します。 Microsoft C++ コードの場合、これはパブリック シンボル名に基づいています。

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

(継承元 DkmInstructionSymbol)
GetEmbeddedDocument()

このシンボルを含む埋め込みドキュメントを返します。 埋め込みドキュメントが存在しない場合は、S_FALSEを返します。

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

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

(継承元 DkmInstructionSymbol)
GetGPUInstructionMetadataCallback(DkmInstructionAddress, DkmInstructionSymbol)

このメソッドは、GPU デバッグ モニターにアドレス情報を返します。

(継承元 DkmInstructionSymbol)
GetInlineFramesCount(DkmBasicSymbolInfoRequestFlags)

指定された命令シンボルにあるインライン フレームの数を返します。

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

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

(継承元 DkmInstructionSymbol)
GetInlineFramesCount(DkmWorkList, DkmBasicSymbolInfoRequestFlags, DkmCompletionRoutine<DkmGetInlineFramesCountAsyncResult>)

指定された命令シンボルにあるインライン フレームの数を返します。

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

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

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

(継承元 DkmInstructionSymbol)
GetInlineSourcePosition(DkmStackWalkFrame, Boolean)

指定したインライン フレーム番号で、この命令シンボルのソース ファイルの位置 (例: example.cs、行 12) を返します。 この命令シンボルがソース ファイルに関連付けられていない場合は、null が返されます (ネイティブでコードS_FALSE返されます)。

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

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

(継承元 DkmInstructionSymbol)
GetInlineSourcePosition(DkmWorkList, DkmStackWalkFrame, DkmCompletionRoutine<DkmGetInlineSourcePositionAsyncResult>)

指定したインライン フレーム番号で、この命令シンボルのソース ファイルの位置 (例: example.cs、行 12) を返します。 この命令シンボルがソース ファイルに関連付けられていない場合は、null が返されます (ネイティブでコードS_FALSE返されます)。

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

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

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

(継承元 DkmInstructionSymbol)
GetNativeInstructionMetadataCallback(DkmInstructionAddress)

ネイティブ デバッグ モニターにアドレス情報を返します。

GetNoSourceRanges()

シンボル プロバイダーに対してクエリを実行して、どのユーザー ソース ステートメントにも対応せず、ステップ実行中に常にステップ実行するために基本デバッグ モニターによって使用される命令の範囲を決定します。

(継承元 DkmInstructionSymbol)
GetSourcePosition(DkmSourcePositionFlags, DkmInspectionSession, Boolean)

この命令シンボルのソース ファイルの位置 (例: example.cs、12 行目) を返します。 この命令シンボルがソース ファイルに関連付けられていない場合は、null が返されます (ネイティブでコードS_FALSE返されます)。

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

(継承元 DkmInstructionSymbol)
GetSourcePosition(DkmWorkList, DkmSourcePositionFlags, DkmInspectionSession, DkmCompletionRoutine<DkmGetSourcePositionAsyncResult>)

この命令シンボルのソース ファイルの位置 (例: example.cs、12 行目) を返します。 この命令シンボルがソース ファイルに関連付けられていない場合は、null が返されます (ネイティブでコードS_FALSE返されます)。

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

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

(継承元 DkmInstructionSymbol)
GetSourcePositionCallback(DkmSourcePositionFlags, DkmInspectionSession, Boolean)

この命令シンボルのソース ファイルの位置 (例: example.cs、12 行目) を返します。 この命令シンボルがソース ファイルに関連付けられていない場合は、null が返されます (ネイティブS_FALSE戻りコード)。

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

(継承元 DkmInstructionSymbol)
GetSourcePositionCallback(DkmWorkList, DkmSourcePositionFlags, DkmInspectionSession, DkmCompletionRoutine<DkmGetSourcePositionCallbackAsyncResult>)

この命令シンボルのソース ファイルの位置 (例: example.cs、12 行目) を返します。 この命令シンボルがソース ファイルに関連付けられていない場合は、null が返されます (ネイティブS_FALSE戻りコード)。

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

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

(継承元 DkmInstructionSymbol)
GetSteppingNativeInstructionMetadata(DkmModuleInstance, DkmInstructionAddress)

この命令をステップ実行する方法を決定するために使用される命令に関するデータをフェッチするために、ネイティブ DM によって呼び出されます。

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

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

GetSteppingRanges(DkmModuleInstance, DkmInstructionAddress, DkmSteppingRangeBoundary, Boolean)

シンボル プロバイダーに対してクエリを実行して、基本デバッグ モニターがステップを実装するためにステップ実行する必要がある命令の範囲を決定します。

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

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

GetSteppingRanges(DkmSteppingRangeBoundary, Boolean)

シンボル プロバイダーに対してクエリを実行して、基本デバッグ モニターがステップを実行してステップを実装する必要がある命令の範囲を決定します。

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

(継承元 DkmInstructionSymbol)
GetSteppingRanges(DkmWorkList, DkmModuleInstance, DkmInstructionAddress, DkmSteppingRangeBoundary, Boolean, DkmCompletionRoutine<DkmGetSteppingRangesAsyncResult>)

シンボル プロバイダーに対してクエリを実行して、基本デバッグ モニターがステップを実装するためにステップ実行する必要がある命令の範囲を決定します。

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

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

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

GetSteppingRanges(DkmWorkList, DkmSteppingRangeBoundary, Boolean, DkmCompletionRoutine<DkmGetSteppingRangesAsyncResult>)

シンボル プロバイダーに対してクエリを実行して、基本デバッグ モニターがステップを実行してステップを実装する必要がある命令の範囲を決定します。

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

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

(継承元 DkmInstructionSymbol)
GetUserCodeSourcePositionCallback(DkmInspectionSession)

この命令シンボルのソース ファイルの位置 (例: example.cs、12 行目) を返します。 この命令シンボルがソース ファイルに関連付けられていないか、ユーザー コードに関連付けられていない場合は、null が返されます (戻りコードE_INSTRUCTION_NO_SOURCE)。

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

(継承元 DkmInstructionSymbol)
GetUserCodeSourcePositionCallback(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetUserCodeSourcePositionCallbackAsyncResult>)

この命令シンボルのソース ファイルの位置 (例: example.cs、12 行目) を返します。 この命令シンボルがソース ファイルに関連付けられていないか、ユーザー コードに関連付けられていない場合は、null が返されます (戻りコードE_INSTRUCTION_NO_SOURCE)。

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

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

(継承元 DkmInstructionSymbol)
HasEmbeddedDocument()

指定されたシンボルに埋め込みドキュメントがあるかどうかをテストします。 埋め込みドキュメントは、ソース ファイル (例: メイン.cs) がシンボル ファイル (例: example.pdb) 内に埋め込まれている場合です。

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

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

(継承元 DkmInstructionSymbol)
HasLineInfo()

シンボル プロバイダーに対してクエリを実行して、行情報があるかどうかを判断します。 場所をユーザー コードと見なすことができるかどうかを判断するために、デバッグ モニターによって使用されます。

場所制約: 通常のシンボルの場合は、任意のコンポーネントから を呼び出すことができます。 動的シンボルの場合、 はサーバー側でのみ呼び出すことができます。

(継承元 DkmInstructionSymbol)
HasLineInfo(DkmWorkList, DkmCompletionRoutine<DkmHasLineInfoAsyncResult>)

シンボル プロバイダーに対してクエリを実行して、行情報があるかどうかを判断します。 場所をユーザー コードと見なすことができるかどうかを判断するために、デバッグ モニターによって使用されます。

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

場所制約: 通常のシンボルの場合は、任意のコンポーネントから を呼び出すことができます。 動的シンボルの場合、 はサーバー側でのみ呼び出すことができます。

(継承元 DkmInstructionSymbol)
IsHiddenCode(DkmWorkList, DkmInspectionSession, DkmInstructionAddress, DkmCompletionRoutine<DkmIsHiddenCodeAsyncResult>)

この命令シンボルが非表示のコードにある場合は を返します。 たとえば、マネージド コードでは、行番号0xfeefeeソース行を非表示としてマークします。

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

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

(継承元 DkmInstructionSymbol)

適用対象