次の方法で共有


!for_each_module

!for_each_module 拡張機能は、ロードされたモジュールごとにデバッガー コマンドを 1 回実行します。

!for_each_module ["CommandString"]
!for_each_module -?

<パラメーター

CommandString
デバッガーのモジュール リスト内のモジュールごとに 1 回実行するデバッガー コマンドを指定します。 CommandString に複数のコマンドが含まれる場合は、コマンドをセミコロンで区切って、CommandString を引用符で囲む必要があります。 複数のコマンドを含める場合、CommandString 内の個々のコマンドに引用符を含めることはできません。

次のエイリアスは、CommandString または CommandString のコマンドが実行する任意のスクリプトで使用できます。

エイリアス データの種類 Value

@#FileVersion

string

モジュールのファイルバージョン。

@#ProductVersion

string

モジュールの製品バージョン。

@#ModuleIndex

ULONG

モジュール番号。 モジュールは 0 から順に列挙されます。

@#ModuleName

string

モジュール名。 この名前は通常、ファイル名拡張子を除いたファイル名です。 状況によっては、モジュール名がファイル名と大幅に異なる場合があります。

@#ImageName

string

ファイル名拡張子を含む実行可能ファイルの名前。 通常、フルパスはユーザーモードには含まれますが、カーネルモードには含まれません。

@#LoadedImageName

string

Microsoft CodeView シンボルが存在しない限り、このエイリアスはイメージ名と同じです。

@#MappedImageName

string

ほとんどの場合、このエイリアスは NULL です。 デバッガーがイメージ ファイルをマッピングしている場合 (たとえば、ミニダンプ デバッグ中)、このエイリアスはマッピングされたイメージの名前です。

@#SymbolFileName

string

シンボル ファイルのパスと名前。 シンボルをロードしていない場合は、このエイリアスが実行可能ファイルの名前になります。

@#ModuleNameSize

ULONG

モジュール名文字列の文字列長に 1 を加えたもの。

@#ImageNameSize

ULONG

イメージ名文字列の文字列長に 1 を加えたもの。

@#LoadedImageNameSize

ULONG

ロードされたイメージ名の文字列の長さに 1 を加えたもの。

@#MappedImageNameSize

ULONG

マップされたイメージ名の文字列の長さに 1 を加えたもの。

@#SymbolFileNameSize

ULONG

シンボル ファイル名文字列の文字列長に 1 を加えたもの。

@#Base

ULONG64

画像の開始アドレス。

@#Size

ULONG

画像のサイズ (バイト単位)。

@#End

ULONG64

画像の末尾のアドレス。

@#TimeDateStamp

ULONG

画像の日時スタンプ。 この時刻と日付スタンプを読み取り可能な日付に拡張する場合は、.formats (数値形式の表示) コマンドを使用します。

@#Checksum

ULONG

モジュールのチェックサム。

@#Flags

ULONG

モジュールのフラグ。 DEBUG_MODULE_Xxx 値のリストについては、Dbgeng.h を参照してください。

@#SymbolType

USHORT

シンボルのタイプ。 DEBUG_SYMTYPE_Xxx 値のリストについては、Dbgeng.h を参照してください。

これらのエイリアスは、各モジュールに対して CommandString が実行される前、および他の解析が行われる前にすべて置き換えられます。 これらのエイリアスでは大文字と小文字が区別されます。 エイリアスが括弧で囲まれている場合でも、エイリアスの前後にスペースを追加する必要があります。 C++ 式構文を使用する場合は、これらのエイリアスを @@( @#alias) として参照する必要があります。

これらのエイリアスは、!for_each_module の呼び出しの存続期間中のみ使用できます。 これらを疑似レジスタ、固定名のエイリアス、またはユーザー名付きのエイリアスと混同しないでください。

-?
この拡張機能のヘルプ テキストをデバッガー コマンド ウィンドウに表示します

DLL

Ext.dll

追加情報

文字列を入力するためのショートカット (${ } トークンの使用を含む) としてエイリアスを定義して使用する方法の詳細については、「エイリアスの使用」を参照してください。

解説

引数を指定しない場合、!for_each_module 拡張子は、ロードされたモジュールに関する一般情報を表示します。 この情報は、次のコマンドで表示される情報と似ています。

!for_each_module .echo @#ModuleIndex : @#Base @#End @#ModuleName @#ImageName  @#LoadedImageName

ロードされたモジュールとアンロードされたモジュールの詳細については、lm (List Loaded Modules) コマンドを使用してください。

詳細デバッガー出力を有効にすると、拡張機能が呼び出されたときにデバッガーにロードされたモジュールとアンロードされたモジュールの合計数が表示され、そのモジュールに対して CommandString が実行される前に、各モジュールに関する詳細情報 (使用可能な各エイリアスの値を含む) が表示されます。

次の例は、!for_each_module 拡張機能の使用方法を示しています。 次のコマンドは、グローバル デバッグ フラグを表示します。

!for_each_module x ${@#ModuleName}!*Debug*Flag*
!for_each_module x ${@#ModuleName}!g*Debug*

次のコマンドは、!chkimg 拡張子を使用して、ロードされたすべてのモジュールのバイナリ破損をチェックします。

!for_each_module !chkimg @#ModuleName

次のコマンドは、読み込まれたすべてのイメージでパターン「MZ」を検索します。

!for_each_module s-a @#Base @#End "MZ"

次の例は、各モジュール名に対する @#FileVersion と @#ProductVersion の使用を示しています。

0:000> !for_each_module .echo @#ModuleName fver = @#FileVersion pver = @#ProductVersion 
USER32 fver = 6.0.6000.16438 (vista_gdr.070214-1610) pver = 6.0.6000.16438
kernel32 fver = 6.0.6000.16386 (vista_rtm.061101-2205) pver = 6.0.6000.16386
ntdll fver = 6.0.6000.16386 (vista_rtm.061101-2205) pver = 6.0.6000.16386
notepad fver = 6.0.6000.16386 (vista_rtm.061101-2205) pver = 6.0.6000.16386
WINSPOOL fver = 6.0.6000.16386 (vista_rtm.061101-2205) pver = 6.0.6000.16386
COMCTL32 fver = 6.10 (vista_rtm.061101-2205) pver = 6.0.6000.16386
SHLWAPI fver = 6.0.6000.16386 (vista_rtm.061101-2205) pver = 6.0.6000.16386
msvcrt fver = 7.0.6000.16386 (vista_rtm.061101-2205) pver = 7.0.6000.16386
GDI32 fver = 6.0.6000.16386 (vista_rtm.061101-2205) pver = 6.0.6000.16386
RPCRT4 fver = 6.0.6000.16525 (vista_gdr.070716-1600) pver = 6.0.6000.16525
SHELL32 fver = 6.0.6000.16513 (vista_gdr.070626-1505) pver = 6.0.6000.16513
ole32 fver = 6.0.6000.16386 (vista_rtm.061101-2205) pver = 6.0.6000.16386
ADVAPI32 fver = 6.0.6000.16386 (vista_rtm.061101-2205) pver = 6.0.6000.16386
COMDLG32 fver = 6.0.6000.16386 (vista_rtm.061101-2205) pver = 6.0.6000.16386