次の方法で共有


DkmModuleInstance クラス

定義

Module Instance クラスは、特定の場所の特定のプロセスに読み込まれるコード バンドル (dll または exe など) を表します。 Module Instance オブジェクトは、コード バンドルの実行環境の概念を持つ 1:1 です。 たとえば、ネイティブ コードでは、Module Instance オブジェクトはベース アドレスを持つ 1:1 です。

派生クラス: DkmClrModuleInstance、DkmClrNcModuleInstance、DkmCustomModuleInstance、DkmNativeModuleInstance、DkmClrNcContainerModuleInstance

public ref class DkmModuleInstance abstract : Microsoft::VisualStudio::Debugger::DkmDataContainer
[System.Runtime.InteropServices.Guid("74857b6f-618d-66e3-149e-6cebf4c4123e")]
public abstract class DkmModuleInstance : Microsoft.VisualStudio.Debugger.DkmDataContainer
[<System.Runtime.InteropServices.Guid("74857b6f-618d-66e3-149e-6cebf4c4123e")>]
type DkmModuleInstance = class
    inherit DkmDataContainer
Public MustInherit Class DkmModuleInstance
Inherits DkmDataContainer
継承
継承
DkmModuleInstance
派生
属性

プロパティ

BaseAddress

[省略可能]モジュールが読み込まれた場所の開始メモリ アドレス。 モジュールが連続したメモリ ブロックに読み込まれていない場合、この値は 0 になります。

Connection

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

Flags

DkmModuleInstance の特性を示すフラグ。

FullName

完全修飾モジュール名。 ファイル ベースのモジュールの場合、これはモジュールへの完全なパスです (例: c:\windows\system32\kernel32.dll。

IsDisabled

このモジュール インスタンスが無効になっているかどうかを示します。 無効なモジュールは、デバッガーによってほとんど無視されます。 ネイティブ モジュールの場合、無効になっているモジュールのアドレス範囲は、マップされていないかのように扱われます。 CLR モジュールの場合、これらのモジュールのすべてのフレームは呼び出し履歴から非表示になります。

IsUnloaded

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

(継承元 DkmDataContainer)
LoadContext

このモジュールが読み込まれたコンテキストの文字列の説明。 例: 'Win32' または 'CLR v2.0.50727: 既定のドメイン'。

LoadOrder

このモジュールまで読み込まれ、このモジュールを含むモジュール インスタンスの数の整数。 各ランタイム インスタンスは、独自の読み込み順序数を追跡します。

MemoryLayout

モジュールをメモリに配置する方法を示す列挙。

MinidumpInfoPart

[省略可能]'MinidumpInfoPart' は、ミニダンプの DkmProcess 内のモジュールに関する追加情報を伝達するために使用されます。

Module

[省略可能]このモジュール インスタンスに関連付けられているモジュール (DkmModule) のシンボル ハンドラーの表現。 この値は最初は null であり、シンボルがこのモジュール インスタンスに関連付けられている場合といつ割り当てられます。

Name

モジュール名の短い表現。 ファイル ベースのモジュールの場合、これはファイル名と拡張子です (例: kernel32.dll)。

Process

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

RuntimeInstance

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

Size

[省略可能]モジュールのメモリ領域内のバイト数。 モジュールが連続したメモリ ブロックに読み込まれていない場合、この値は 0 になります。

SymbolFileId

[省略可能]このモジュールのシンボルを検索するために必要な情報が含まれています。 Win32 では、この情報はIMAGE_DEBUG_DIRECTORY内に含まれています。

TagValue

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

TimeDateStamp

読み込まれたモジュールがビルドされたときの日付/時刻。 この値は、読み込まれたモジュールのIMAGE_NT_HEADERSから取得されます。 測定単位は FILETIME 値で、1601 年 1 月 1 日 (UTC) 以降の 100 ナノ秒間隔の数を表す 64 ビット値です。

UniqueId

DkmModuleInstance オブジェクトを一意に識別します。

Version

[省略可能]ファイルのバージョン情報。

メソッド

ClearTransitionModuleFlag()

ランタイム インスタンスは、このメソッドを呼び出して、モジュールを境界モジュールとしてマークします。 ステップ実行時に、ステップが境界モジュールにヒットした場合はランタイムがチェックし、存在する場合はステップアービトレーションを開始する必要があります。 一部のランタイムでは、この要求を受け入ることができない場合があることに注意してください。 ディスパッチャーは、FlagAsTransitionModule が呼び出された回数を保持します。 ClearTransitionModuleFlag に対する呼び出しの数が一致する場合にのみ、モジュールは遷移モジュールと見なされなくなります。

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

Decompile()

モジュールのコードを C# に逆コンパイルし、このソースが埋め込まれた新しいポータブル PDB を作成します。 このシンボル ファイルを共有するすべてのモジュールは、これらの更新されたシンボルの使用を開始します。

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

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

Decompile(DkmWorkList, DkmCompletionRoutine<DkmDecompileAsyncResult>)

モジュールのコードを C# に逆コンパイルし、このソースが埋め込まれた新しいポータブル PDB を作成します。 このシンボル ファイルを共有するすべてのモジュールは、これらの更新されたシンボルの使用を開始します。

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

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

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

Decompile(DkmWorkList, DkmCompletionRoutine<DkmDecompileAsyncResult173>)

モジュールのコードを C# に逆コンパイルし、このソースが埋め込まれた新しいポータブル PDB を作成します。 このシンボル ファイルを共有するすべてのモジュールは、これらの更新されたシンボルの使用を開始します。 実装では、エラー時にS_OKを返し、実際の HRESULT と 'HR' パラメーターと 'ErrorMessage' パラメーターを使用して追加のエラー情報を返す必要があります。

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

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

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

Decompile(String, Int32)

モジュールのコードを C# に逆コンパイルし、このソースが埋め込まれた新しいポータブル PDB を作成します。 このシンボル ファイルを共有するすべてのモジュールは、これらの更新されたシンボルの使用を開始します。 実装では、エラー時にS_OKを返し、実際の HRESULT と 'HR' パラメーターと 'ErrorMessage' パラメーターを使用して追加のエラー情報を返す必要があります。

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

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

FlagAsTransitionModule()

ランタイム インスタンスは、このメソッドを呼び出して、モジュールを境界モジュールとしてマークします。 ステップ実行時に、ステップが境界モジュールにヒットした場合はランタイムがチェックし、存在する場合はステップアービトレーションを開始する必要があります。 一部のランタイムでは、この要求を受け入ることができない場合があることに注意してください。 ディスパッチャーは、これが呼び出された回数を保持します。 ClearTransitionModuleFlag に対して一致する数の呼び出しが行われた場合にのみ、モジュールは遷移モジュールとは見なされなくなります。

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

GetDataItem<T>()

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

(継承元 DkmDataContainer)
GetGPUDisassembly(UInt64, UInt32, Boolean, Boolean)

デバッグ対象モジュール インスタンスのアドレス範囲の逆アセンブリを取得します。

GetGPUDisassemblySize()

デバッグ対象モジュール インスタンスの逆アセンブリ サイズを返します。

GetNextGPUInstructionAddress(UInt64)

開始アドレスに対する次の命令のアドレスを返します。

GetSymbolLoadInformation()

シンボルが検索されたさまざまな場所と、その場所を確認した結果を説明する文字列を返します。 この情報は、モジュール ウィンドウの [シンボル読み込み情報] を設定するために使用されます。

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

GetSymbolSearchResult()

このモジュール インスタンスに関連付けられているシンボル検索結果を取得します。

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

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

GetSymbolSearchResult(DkmWorkList, DkmCompletionRoutine<DkmGetSymbolSearchResultAsyncResult>)

このモジュール インスタンスに関連付けられているシンボル検索結果を取得します。

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

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

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

GetSymbolStatusMessage(Boolean)

現在のシンボルの状態のローカライズされた文字列の説明を取得します。

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

GetSymbolStatusMessage(DkmWorkList, Boolean, DkmCompletionRoutine<DkmGetSymbolStatusMessageAsyncResult>)

現在のシンボルの状態のローカライズされた文字列の説明を取得します。

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

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

IsSuppressed()

このメソッドを使用すると、コンポーネントは、モジュールのモジュール読み込みイベントが抑制されたかどうかを判断できます。

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

IsTransitionModule()

ランタイム インスタンスでこのモジュールに遷移モジュールのフラグが設定されている場合は true を返します。

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

IsUserCode()

モジュールがユーザー コードと見なされるかどうかを判断します。

場所の制約: このメソッドは IDE コンポーネントから呼び出すことができます。 Visual Studio 2013 Update 2 以降では、マネージド コードのモニター コンポーネントからこれを呼び出すこともできます。 Visual Studio 2017 Update 8 から、API の CallDirection は 'Normal' から '双方向' にされ、任意のコンポーネントから呼び出すようになりました。AsyncCaller は 'true' に設定され、CallerLocationConstraint は 'NoMarshalling' から 'None' に設定されました。

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

IsUserCode(DkmWorkList, DkmCompletionRoutine<DkmModuleInstanceIsUserCodeAsyncResult>)

モジュールがユーザー コードと見なされるかどうかを判断します。

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

場所の制約: このメソッドは IDE コンポーネントから呼び出すことができます。 Visual Studio 2013 Update 2 以降では、マネージド コードのモニター コンポーネントからこれを呼び出すこともできます。 Visual Studio 2017 Update 8 から、API の CallDirection は 'Normal' から '双方向' にされ、任意のコンポーネントから呼び出すようになりました。AsyncCaller は 'true' に設定され、CallerLocationConstraint は 'NoMarshalling' から 'None' に設定されました。

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

OnBinaryLoaded(String)

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

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

OnBinaryReloadOpportunity()

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

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

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

OnModuleModified()

このメソッドは、EnC または動的に出力されたコードによってモジュールが変更されたときに呼び出されます。

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

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

OnSymbolsLoaded(DkmModule, Boolean)

このメソッドは、IDkmModuleSymbolsLoaded.RaiseSymbolsLoadedEvent の呼び出しに応答して、基本デバッグ モニターによって呼び出されます。 このメソッドは、イベント スレッドから、または再読み込みの一環として要求スレッドから呼び出す必要があります。 基本デバッグ モニターは、同期的にイベント スレッドに切り替え、ターゲット プロセスを一時停止し、OnSymbolsLoaded を呼び出す必要があります。

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

OnSymbolsUpdated(DkmModule)

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

ReadSymbols()

このメソッドは、シンボル がデバッグ対象のメモリ内に存在する DkmModuleInstances のシンボルを読み取るためにシンボル ハンドラーによって呼び出されます。

RemoveDataItem<T>()

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

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

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

(継承元 DkmDataContainer)
SetDisabled(Boolean)

モジュールで無効な状態をUpdatesします。 このメソッドは、ModuleInstanceLoad イベントからのみ呼び出されます。 モジュールを無効にする場合は、モジュールの読み込みイベントも抑制するのが一般的です。

SetModule(DkmModule, Boolean)

このメソッドは、DkmModule を DkmModuleInstance に関連付け、ModuleSymbolsLoaded イベントをトリガーするためにシンボル プロバイダーによって呼び出されます。 これは、DkmModuleInstance オブジェクトに対して 1 回だけ呼び出される場合があります。 この API を呼び出すと、DkmModule-DkmModuleInstance<> 関連付けが確立され、ModuleSymbolsLoaded イベントが発生します。

TryLoadBinary()

更新されたシンボル パスを使用して、以前に読み込みに失敗したバイナリを読み込もうとします。

TryLoadBinary(DkmWorkList, DkmCompletionRoutine<DkmTryLoadBinaryAsyncResult>)

更新されたシンボル パスを使用して、以前に読み込みに失敗したバイナリを読み込もうとします。

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

TryLoadSymbols()

モジュールの読み込み時にシンボルが見つからなかった DkmModuleInstances のシンボルの読み込みを開始するために呼び出されます。

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

TryLoadSymbols(DkmSymbolLoadFlags)

モジュールの読み込み時にシンボルが見つからなかった DkmModuleInstances のシンボルの読み込みを開始するために呼び出されます。

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

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

TryLoadSymbols(DkmWorkList, DkmCompletionRoutine<DkmTryLoadSymbolsAsyncResult>)

モジュールの読み込み時にシンボルが見つからなかった DkmModuleInstances のシンボルの読み込みを開始するために呼び出されます。

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

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

TryLoadSymbols(DkmWorkList, DkmSymbolLoadFlags, DkmCompletionRoutine<DkmTryLoadSymbolsAsyncResult>)

モジュールの読み込み時にシンボルが見つからなかった DkmModuleInstances のシンボルの読み込みを開始するために呼び出されます。

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

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

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

TryLoadSymbolsCallback()

モジュールの読み込み時にシンボルが見つからなかった DkmModuleInstances のシンボルの読み込みを開始するために呼び出されます。

場所の制約: これは、クライアントまたはサーバーから呼び出すことができます。 このサーバー実装は、不要なネットワーク呼び出しを防ぐためのキャッシュです。 クライアントは、"実際の" 実装に直接移動します。これにより、再試行が早期に返されることが保証されます。

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

TryLoadSymbolsCallback(DkmWorkList, DkmCompletionRoutine<DkmTryLoadSymbolsCallbackAsyncResult>)

モジュールの読み込み時にシンボルが見つからなかった DkmModuleInstances のシンボルの読み込みを開始するために呼び出されます。

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

場所の制約: これは、クライアントまたはサーバーから呼び出すことができます。 このサーバー実装は、不要なネットワーク呼び出しを防ぐためのキャッシュです。 クライアントは、"実際の" 実装に直接移動します。これにより、reattempts が早期に返されることが保証されます。

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

TryLoadSymbolsCallback177(DkmSymbolLoadFlags)

モジュールの読み込み時にシンボルが見つからなかった DkmModuleInstances のローカルに存在するシンボルの読み込みを開始するために呼び出されます。

場所の制約: これは、クライアントまたはサーバーから呼び出すことができます。 このサーバー実装は、不要なネットワーク呼び出しを防ぐためのキャッシュです。 クライアントは、"実際の" 実装に直接移動します。これにより、reattempts が早期に返されることが保証されます。

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

TryLoadSymbolsCallback177(DkmWorkList, DkmSymbolLoadFlags, DkmCompletionRoutine<DkmTryLoadSymbolsCallback177AsyncResult>)

モジュールの読み込み時にシンボルが見つからなかった DkmModuleInstances のローカルに存在するシンボルの読み込みを開始するために呼び出されます。

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

場所の制約: これは、クライアントまたはサーバーから呼び出すことができます。 このサーバー実装は、不要なネットワーク呼び出しを防ぐためのキャッシュです。 クライアントは、"実際の" 実装に直接移動します。これにより、reattempts が早期に返されることが保証されます。

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

Unload()

Unload オブジェクトをアンロード済みとしてマークし、イベント シンク インターフェイスを実装するコンポーネントに通知します。 すべてのコンポーネントに通知されると、コントロールが返されます。

このメソッドは、 オブジェクトを作成したコンポーネントによってのみ呼び出されます。

適用対象