次の方法で共有


DkmModule クラス

定義

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

public ref class DkmModule : Microsoft::VisualStudio::Debugger::DkmDataContainer
[System.Runtime.InteropServices.Guid("9fdf7d9f-e5ab-b363-6282-1da170173343")]
public class DkmModule : Microsoft.VisualStudio.Debugger.DkmDataContainer
[<System.Runtime.InteropServices.Guid("9fdf7d9f-e5ab-b363-6282-1da170173343")>]
type DkmModule = class
    inherit DkmDataContainer
Public Class DkmModule
Inherits DkmDataContainer
継承
継承
属性

プロパティ

CompilerId

このモジュール内のすべてのコードを生成したコンパイラの LanguageId/VendorId。 モジュールに複数の言語が混在している可能性がある場合、これは Guid.Empty/Guid.Empty です。 これは、ほとんどの場合、PDB ベースのモジュールでは Guid.Empty/Guid.Empty になります。 一般に、各シンボルの言語を検出するためのネットワーク ラウンド トリップを回避するために、動的言語で使用されます。

Connection

[省略可能]シンボルがリモートで読み込まれるモジュールの場合、Connection プロパティを使用して、Connection の送信元を特定します。 それ以外の場合、これは NULL になります。

FilePath

[省略可能]指定した場合、これには DkmModule をバックするシンボル ファイルへの完全なパスが含まれます (例: c:\myproj\bin\Debug\myproj.pdb)。

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

Flags

この DkmModule オブジェクトの特性を示すフラグ。

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

Id

特定の DkmModule インスタンスを一意に識別するために使用される Guid ペア。

IsUnloaded

このオブジェクトに対して 'unloaded' イベントが発生した場合 (例: DkmThread::Unload が呼び出されます)、またはオブジェクトが閉じている場合は true を返します。 同期なしでこの状態を確認する場合は、読み取った後に返される状態が正確でなくなる可能性があるため、注意が必要です。

(継承元 DkmDataContainer)
Name

モジュールの名前です。

SymbolsConnection

[省略可能]null 以外の場合、この DkmModule のシンボルが処理されるワーカー プロセスへの接続を指定します。 IDE プロセスにシンボルが読み込まれる場合、またはリモート デバッガーに読み込まれる場合 (DkmModule.Connection が null 以外の場合) は null になります。

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

メソッド

Create(DkmModuleId, String, DkmCompilerId, DkmTransportConnection, DkmDataItem)

読み込まれた 1 つ以上のモジュール (モジュール インスタンス) のシンボルを表す新しい DkmModule オブジェクトを作成します。 これらのオブジェクトは、シンボル プロバイダーによって作成されます。 DkmModule オブジェクトが作成された後、シンボル プロバイダーは DkmModuleInstance.SetModule を呼び出して DkmModuleInstance と DkmModule を関連付ける必要があります。

このメソッドは ModuleCreate イベントを送信します。

Create(DkmModuleId, String, DkmCompilerId, DkmTransportConnection, DkmWorkerProcessConnection, String, DkmDataItem)

読み込まれた 1 つ以上のモジュール (モジュール インスタンス) のシンボルを表す新しい DkmModule オブジェクトを作成します。 これらのオブジェクトは、シンボル プロバイダーによって作成されます。 DkmModule オブジェクトが作成された後、シンボル プロバイダーは DkmModuleInstance.SetModule を呼び出して DkmModuleInstance と DkmModule を関連付ける必要があります。

このメソッドは ModuleCreate イベントを送信します。

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

Create(DkmModuleId, String, DkmCompilerId, DkmTransportConnection, DkmWorkerProcessConnection, String, DkmModuleSymbolFlags, DkmDataItem)

読み込まれた 1 つ以上のモジュール (モジュール インスタンス) のシンボルを表す新しい DkmModule オブジェクトを作成します。 これらのオブジェクトは、シンボル プロバイダーによって作成されます。 DkmModule オブジェクトが作成された後、シンボル プロバイダーは DkmModuleInstance.SetModule を呼び出して DkmModuleInstance と DkmModule を関連付ける必要があります。

このメソッドは ModuleCreate イベントを送信します。

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

EnumSymbolsDocuments()

モジュールに関連付けられているシンボル ファイルのシンボル ドキュメントを列挙します。

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

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

EnumSymbolsDocuments(DkmWorkList, DkmCompletionRoutine<DkmEnumSymbolsDocumentsAsyncResult>)

モジュールに関連付けられているシンボル ファイルのシンボル ドキュメントを列挙します。

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

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

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

FindDocuments(DkmSourceFileId)

ドキュメント クエリに含まれる検索パラメーターからドキュメント オブジェクトを返します。 シンボル ファイルにこのドキュメントへの参照が含まれていない場合、返されるドキュメント オブジェクトは NULL になります (ネイティブの戻りコードS_FALSE)。 返されるドキュメント オブジェクトは、呼び出し元がドキュメントで実行されるときに、呼び出し元によって明示的に閉じられる必要があります。

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

FindDocuments(DkmWorkList, DkmSourceFileId, DkmCompletionRoutine<DkmFindDocumentsAsyncResult>)

ドキュメント クエリに含まれる検索パラメーターからドキュメント オブジェクトを返します。 シンボル ファイルにこのドキュメントへの参照が含まれていない場合、返されるドキュメント オブジェクトは NULL になります (ネイティブの戻りコードS_FALSE)。 返されるドキュメント オブジェクトは、呼び出し元がドキュメントで実行されるときに、呼び出し元によって明示的に閉じられる必要があります。

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

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

FindModule(DkmModuleId)

DkmModule オブジェクトを見つけます。 指定された入力キーを持つオブジェクトが存在しない場合、FindModule は失敗します。

GetAcceleratorTagTableSize(UInt32)

レジスタのC++ AMP アドレスを取得します。

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

GetCompilerOptions()

このメソッドは、指定された GPU モジュールのコンパイラ フラグを返します。

GetDataItem<T>()

このコンテナー インスタンスに追加された 'T' のインスタンスを取得します。 このコンテナーに 'T' が含まれていない場合、この関数は null を返します。

(継承元 DkmDataContainer)
GetEntryPointSymbols()

GetEntryPointSymbols は、ブレークポイント マネージャーによって、起動する実行可能ファイル内のエントリ ポイントシンボルを検索するために使用されます。 マネージド コードの場合、このシンボルは ISymUnmanagedWriter::SetUserEntryPoint を使用して定義されます。 ネイティブ コードの場合、このシンボルは、さまざまな 'メイン' 関数 (メイン、WinMain など) を探すことによって見つかります。 3 つ目は、独自のシンボル プロバイダーを実装するか、IDkmEntryPointQuery を実装することによって、エントリ ポイントをオーバーライドできます。

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

GetExpensiveHashValue(DkmSourceFileId, DkmHashAlgorithmId)

指定された DkmSourceFileId から "コストの高い" ハッシュ値を取得します。

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

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

GetFirstMethodInFirstDocument()

最初のドキュメントの最初のメソッドを返します。

GetFunctionInfo(DkmWorkList, String, DkmCompletionRoutine<DkmGetFunctionInfoAsyncResult>)

指定した名前の関数のモジュールのシンボルをSearchします。 RVA とサイズが見つかった場合は、それを返します。

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

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

GetFunctionInfo(String)

指定した名前の関数のモジュールのシンボルをSearchします。 RVA とサイズが見つかった場合は、それを返します。

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

GetFunctionLabels(UInt64)

RVA のシンボル名を取得します。

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

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

GetFunctionRva(UInt64)

指定した RVA を含む関数の RVA を取得します。

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

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

GetInstructionOffsetForRva(UInt32)

GetInstructionOffsetForRva は、DPC++ の命令オフセットと RVA 変換を実行するためにシンボル プロバイダーにクエリを実行するためにコンポーネントによって使用されます。

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

GetLinkerFixupRecords()

モジュールのリンカー修正レコードをフェッチします。

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

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

GetMethodSymbolStoreData(DkmClrMethodId)

メソッド内のスコープを返します。 常に少なくとも 1 つのスコープがあります。

GetMethodSymbolStoreData(DkmWorkList, DkmClrMethodId, DkmCompletionRoutine<DkmGetMethodSymbolStoreDataAsyncResult>)

メソッド内のスコープを返します。 常に少なくとも 1 つのスコープがあります。

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

GetMethodSymbolStoreDataPreRemap(DkmClrMethodId, Int32)

メソッド内のスコープを返します。 常に少なくとも 1 つのスコープがあります。

GetMethodSymbolStoreDataPreRemap(DkmWorkList, DkmClrMethodId, DkmCompletionRoutine<DkmGetMethodSymbolStoreDataPreRemapAsyncResult>)

メソッド内のスコープを返します。 常に少なくとも 1 つのスコープがあります。

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

GetModuleInstances()

DkmModule はモジュールのシンボル ハンドラーの表現であり、プロセス、接続、またはランタイム インスタンスにはバインドされません。 このメソッドは、この DkmModule にマップされるすべての DkmModuleInstances を返します。 すべてのモジュールがアンロードされた場合、DkmModule は 0 個のインスタンスにバインドできます。 この場合、GetModuleInstances は空の配列 (ネイティブS_FALSE戻りコード) を返します。

GetModules()

GetModules は、作成されたすべての DkmModule オブジェクトを列挙します。

GetPointerToHLSLRegister(Int32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, Boolean)

レジスタのC++ AMP アドレスを取得します。

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

GetPublicSymbolByNameCallback(DkmWorkList, String, DkmCompletionRoutine<DkmGetPublicSymbolByNameCallbackAsyncResult>)

特定の名前のS_PUBLIC32の RVA を文字列で返します。

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

GetPublicSymbolByNameCallback(String)

特定の名前のS_PUBLIC32の RVA を文字列で返します。

GetRegisterRelativeSymbolName(DkmWorkList, UInt32, Int32, UInt32, DkmProcessorArchitecture, DkmCompletionRoutine<DkmGetRegisterRelativeSymbolNameAsyncResult>)

レジスタの相対値のシンボル名を取得します。

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

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

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

GetRegisterRelativeSymbolName(UInt32, Int32, UInt32, DkmProcessorArchitecture)

レジスタの相対値のシンボル名を取得します。

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

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

GetScriptDocuments()

GetScriptDocuments は、この DkmModule オブジェクトの DkmScriptDocument 要素を列挙します。

GetSourceLinkData(DkmModuleInstance)

ストリームが存在する場合は、モジュールのソース リンク ストリーム データの内容を返します。

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

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

GetSourceLinkData(DkmWorkList, DkmModuleInstance, DkmCompletionRoutine<DkmGetSourceLinkDataAsyncResult>)

ストリームが存在する場合は、モジュールのソース リンク ストリーム データの内容を返します。

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

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

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

GetSourceLinkInfo(String)

要求されたファイル パスのシンボル ファイルから SourceLink 情報を返します。

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

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

GetSourceServerData(DkmModuleInstance)

ストリームが存在する場合は、モジュールのソース サーバー ストリーム データの内容を返します。

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

GetSourceServerData(DkmWorkList, DkmModuleInstance, DkmCompletionRoutine<DkmGetSourceServerDataAsyncResult>)

ストリームが存在する場合は、モジュールのソース サーバー ストリーム データの内容を返します。

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

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

GetSymbolFilePath()

DkmModule オブジェクトをバックアップするシンボル ファイルへのパスを返します。

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

GetSymbolFilePath(DkmWorkList, DkmCompletionRoutine<DkmGetSymbolFilePathAsyncResult>)

DkmModule オブジェクトをバックアップするシンボル ファイルへのパスを返します。

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

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

GetSymbolFileRawBytes()

GetSymbolFileRawBytes は、シンボル ファイルの生バイトをリモート側から取得するために使用されます。 これは現在、動的ポータブル PDB でのみサポートされています。 これにより、最大 10 MB が返されます。

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

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

GetSymbolInterface(Guid)

GetSymbolInterface は、シンボル ストアへの生の COM インターフェイスを取得するために使用されます。 これは、デバッガーによって提示されるシンボル抽象化がニーズに対して制限が厳しすぎるか、コンポーネントの実装方法が原因で単に望ましくないと見なす呼び出し元にとって便利です。

場所制約: マネージド シンボルを除き、シンボル プロバイダーがシンボル ファイルを開いたのと同じプロセスからこのメソッドを呼び出す必要があります。 ネイティブ PDB ファイルの場合は、IDE プロセスから API を呼び出す必要があることを意味します。 マネージド シンボルの場合、シンボル プロバイダー API のサブセットがリモート接続の両側に提供されます。

GetSymbolNameForRVA(DkmWorkList, UInt32, DkmCompletionRoutine<DkmGetSymbolNameForRVAAsyncResult>)

RVA のシンボル名を取得します。

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

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

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

GetSymbolNameForRVA(UInt32, UInt64)

RVA のシンボル名を取得します。

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

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

GetTokenSymbolStoreAttribute(DkmWorkList, Int32, Boolean, String, DkmCompletionRoutine<DkmGetTokenSymbolStoreAttributeAsyncResult>)

名前に基づいてカスタム属性を取得します。 メタデータ カスタム属性と混同しないように、これらの属性はシンボル ストアに保持されます。

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

GetTokenSymbolStoreAttribute(Int32, Boolean, String)

名前に基づいてカスタム属性を取得します。 メタデータ カスタム属性と混同しないように、これらの属性はシンボル ストアに保持されます。

IsValidAcceleratorTag(UInt32, UInt32)

アクセラレータ ポインター タグが有効かどうかを確認します。

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

OnModuleSymbolsReplaced()

ModuleSymbolsReplaced イベントを発生させます。 イベント シンク インターフェイスを実装するコンポーネントは、イベント通知を受け取ります。 すべてのコンポーネントに通知されると、コントロールが返されます。

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

RemoveDataItem<T>()

このコンテナーから 'T' のインスタンスを削除します。 通常、オブジェクトが閉じられるとデータ コンテナーが自動的に空になるので、このメソッドを呼び出す必要があります。

(継承元 DkmDataContainer)
SetDataItem<T>(DkmDataCreationDisposition, T)

データ コンテナーに新しい項目を配置します。

(継承元 DkmDataContainer)
SetPointerToHLSLRegister(UInt64, Int32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)

レジスタのC++ AMPアドレスを設定します。

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

SymbolsHaveEmbeddedDocuments()

モジュールに関連付けられているシンボルにドキュメントが埋め込まれているかどうかを確認します。

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

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

TranslateAcceleratorTagByIP(UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)

アクセラレータ ポインター タグを HLSL レジスタ属性に変換します。

TranslateAcceleratorTagByRva(UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)

相対仮想アドレスを使用して、アクセラレータ ポインター タグを HLSL レジスタ属性に変換します。

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

UndecorateName(String, UInt32)

シンボル名を解除します。

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

適用対象