次の方法で共有


DkmCustomInstructionSymbol クラス

定義

DkmCustomInstructionSymbol は、任意の種類のカスタム ランタイム環境で実行可能ステートメントを表すために使用されます。

public ref class DkmCustomInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmCustomInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
class DkmCustomInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[System.Runtime.InteropServices.Guid("c154cde9-82a7-6e6f-f4f4-8dbb776da068")]
public class DkmCustomInstructionSymbol : Microsoft.VisualStudio.Debugger.Symbols.DkmInstructionSymbol
[<System.Runtime.InteropServices.Guid("c154cde9-82a7-6e6f-f4f4-8dbb776da068")>]
type DkmCustomInstructionSymbol = class
    inherit DkmInstructionSymbol
Public Class DkmCustomInstructionSymbol
Inherits DkmInstructionSymbol
継承
DkmCustomInstructionSymbol
属性

プロパティ

AdditionalData

[省略可能]アドレスに関連付けられている追加のランタイム固有のデータ。 このデータは、アドレスを比較するときに使用されません。

EntityId

[省略可能]これは、カスタム ランタイムがこの命令の場所を格納するために使用できるランタイム固有のデータ構造です。 "offset" と共に、このフィールドは同じモジュールの 2 つの命令を比較するために使用されます。

Module

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

(継承元 DkmInstructionSymbol)
Offset

'EntityId' と共に、'Offset' フィールドを使用して命令を一意に識別します。 これは、ポインター値 (命令へのポインターなど) または関数/モジュールの先頭からのオフセットを保持できます。

RuntimeType

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

(継承元 DkmInstructionSymbol)
TagValue

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

(継承元 DkmInstructionSymbol)

メソッド

Bind(DkmModuleInstance)

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

(継承元 DkmInstructionSymbol)
Create(DkmModule, Guid, ReadOnlyCollection<Byte>, UInt64, ReadOnlyCollection<Byte>)

新しい DkmCustomInstructionSymbol オブジェクト インスタンスを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)
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)
GetSteppingRanges(DkmSteppingRangeBoundary, Boolean)

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

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

(継承元 DkmInstructionSymbol)
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)

適用対象