モジュール

イメージ は、Windows がユーザー モード プロセスまたはカーネルの一部として読み込んだ実行可能ファイル、DLL、またはドライバーです。 イメージが読み込まれたファイルは、その イメージ ファイルと呼ばれます。

デバッガー エンジン は、各プロセス (またはカーネル モードでは仮想プロセス) の モジュール の一覧をキャッシュします。 通常、この一覧の各モジュールは、プロセス内のイメージを表します。 エンジンのモジュール一覧は リロード を使用してターゲットと同期できます。

注: カーネル モード デバッグでは、仮想プロセスのエンジンのモジュール一覧には、システム全体のカーネル モード モジュールと、現在のプロセスのユーザー モード モジュールの両方が含まれています。

モジュールは、ターゲットの仮想アドレス空間内のベース アドレス、またはエンジンがターゲットメイン含むモジュールの一覧内のインデックスによって指定できます。 モジュールのインデックスはモジュールのリスト内の位置と等しいので、インデックスが小さいモジュールがアンロードされると、このインデックスが変更されます。 アンロードされたすべてのモジュールにはインデックスがあります。これらは、読み込まれたモジュールのインデックスよりも常に高くなります。 モジュールのベース アドレスは、読み込まれたメイン限り変更されません。場合によっては、モジュールがアンロードされて再読み込みされると変更されることがあります。

インデックスは、0 からターゲット内のモジュールの数から 1 を引いた数値です。 現在のプロセス内のモジュールの数は GetNumberModules を呼び出すことによって確認できます。

インデックスを使用して GetModuleByIndex を呼び出すことによってベース アドレスを検索できます。 指定した名前のシンボルを所有するモジュールのベース アドレスは GetSymbolModule を使用して見つけることができます。

次のメソッドは、指定したモジュールのインデックスとベース アドレスの両方を返します。

  • 特定のモジュール名を持つモジュールを検索するには GetModuleByModuleName を使用 します。

  • 仮想アドレス範囲に特定のアドレスが含まれるモジュールは GetModuleByOffset によって返されます。 このメソッドを使用して、モジュールのベース アドレスを指定してモジュール インデックスを検索できます。

次のメソッドは、ベース アドレスまたはインデックスによって指定されたモジュールに関する情報を返します。

アンロードされたモジュール

ユーザー モードデバッグ中、アンロードされたモジュールは、Windows Server 2003 以降のバージョンの Windows でのみ追跡されます。 以前のバージョンの Windows では、カーネル モードでアンロードされたモジュールのみが追跡されました。 追跡されると、読み込まれたモジュールの後にインデックスが作成されます。 そのため、ターゲットのモジュールを検索するメソッドは、読み込まれたすべてのモジュールとアンロードされたモジュールを検索します。 アンロードされたモジュールを使用して、アンロードされたコードを呼び出そうとした場合に発生したエラーを分析できます。

合成モジュール

合成モジュール は、 メモリ領域にラベルを付ける方法として作成できます。 これらのモジュールには実際のシンボルを含めることはできませんが、合成シンボルを含めることができます。 AddSyntheticModule メソッドは、新しい合成モジュールを作成します。 合成モジュールは RemoveSyntheticModule を使用して削除できます。 ターゲット内のすべてのモジュールを再読み込みすると、すべての合成モジュールが削除されます。

[イメージ パス]

実行可能イメージ パス は、実行可能イメージを検索するときにエンジンによって使用されます。

実行可能イメージ パスは、セミコロン (;) で区切られた複数のディレクトリで構成できます。 これらのディレクトリは順番に検索されます。

実行可能イメージ パスの概要については、「実行可能イメージ パス」を参照してください。

実行可能イメージ パスにディレクトリを追加するには AppendImagePath メソッド を使用します。 実行可能イメージ パス全体は GetImagePath によって返され SetImagePath を使用して変更できます。

追加情報

プロセスと仮想プロセスの詳細については スレッドとプロセス」を参照してください。