.reload (モジュールの再読み込み)

について .reload コマンドは、指定されたモジュールのすべてのシンボル情報を削除し、必要に応じてこれらのシンボルを再ロードする。 場合によっては、このコマンドはモジュール自体のリロードやアンロードも行う。

.reload [Options] [Module[=Address[,Size[,Timestamp]]]] 
.reload -?

パラメーター

Options 以下のいずれかのオプション:

/d
デバッガのモジュール・リストにあるすべてのモジュールをリロードする。 (すべてのパラメーターを省略した場合、ユーザーモードのデバッグ中はこの状態がデフォルトとなる)。

/f
デバッガにシンボルを直ちにロードさせる。 このパラメータは 遅延シンボルローディング. 詳細については、「解説」を参照してください。

/i
.pdbファイルのバージョンの不一致を無視する。 (このパラメーターを含めないと、デバッガーは不一致のシンボル・ファイルをロードしません)。を使用する場合 /i, /f は、明示的に指定しなくても使用される。

/l
モジュールを一覧表示するが、シンボルのリロードは行わない。 (カーネルモードでは、このパラメータは lm 命令.)

/n
カーネルシンボルのみをリロードする。 このパラメータは、ユーザーシンボルをリロードしない。 (このオプションはカーネルモードデバッグ中にのみ使用できる)。

/o
シンボルサーバーのダウンストリームストアのキャッシュファイルを強制的に上書きする。 このフラグを使うときは /f. デフォルトでは、ダウンストリームストアのファイルは上書きされない。

シンボル・サーバーは、バイナリの異なるビルドのシンボルに個別のファイル名を使用するため、ダウンストリームストアが破損していると思われる場合を除き、このオプションを使用する必要はありません。

/s
システムのモジュール・イメージ・リストにあるすべてのモジュールをリロードする。 (すべてのパラメーターを省略すると、カーネルモードデバッグ中のデフォルトはこの状態になる)。

ユーザーモードデバッグを実行する際に、個々のシステムモジュールを名前でロードする場合は、次のように記述する必要があります。 /s.

/u
指定されたモジュールとそのすべてのシンボルをアンロードする。 デバッガは、ロードされたモジュールの名前が モジュール, フルパスに関係なく。 画像名も検索される。 詳しくは、次の「備考」セクションの注釈を参照のこと。

/unl
アンロードされたモジュールリストにある画像情報に基づいてシンボルをリロードする。

/user
ユーザーシンボルのみをリロードする。 (このオプションはカーネルモードデバッグ中にのみ使用できる)。

/v
冗長モードをオンにする。

/w
モジュール をリテラル文字列として使用する。 この処置は、デバッガがワイルドカード文字を展開するのを防ぐ。

モジュール
ホスト・コンピュータ上のシンボルをリロードするターゲット・システム上のイメージの名前を指定する。 モジュール には、ファイル名とファイル名の拡張子を含めてください。 を使用しない限り /w オプション, モジュール にはさまざまなワイルドカード文字や指定子が含まれる。 構文の詳細については 文字列ワイルドカード構文. 省略した場合 モジュール, の動作は .リロード コマンドは オプション あなたはそれを使う。

住所
モジュールのベースアドレスを指定する。 通常、このアドレスが必要なのは、画像ヘッダーが壊れているか、ページアウトしている場合だけです。

[サイズ]
モジュール画像のサイズを指定する。 多くの場合、デバッガはモジュールの正しいサイズを知っている。 デバッガが正しいサイズを知らない場合は、次のように指定する。 サイズ. このサイズは実際のモジュールサイズでもそれ以上の数値でもよいが、それ以下の数値であってはならない。 通常、このサイズが必要なのは、画像ヘッダーが壊れているか、ページアウトしている場合だけです。

Timestamp
モジュール・イメージのタイムスタンプを指定する。 多くの場合、デバッガはモジュールの正しいタイムスタンプを知っている。 デバッガがタイムスタンプを知らない場合は、次のように指定する。 タイムスタンプ. 通常、このタイムスタンプが必要なのは、画像ヘッダーが壊れているか、ページアウトしている場合だけです。

の間に空白があってはならない。 住所, サイズ, そして タイムスタンプ パラメーター.

-?
このコマンドの短いヘルプテキストを表示する。

環境

項目 説明
モード ユーザー モード、カーネル モード
対象 ライブ、クラッシュ ダンプ
プラットフォーム すべて

追加情報

遅延 (レイジー) シンボルの読み込みの詳細については、「遅延シンボルの読み込み」を参照してください。 その他のシンボルオプションの詳細については シンボルオプションの設定.

解説

について .リロード コマンドでは、シンボル情報は読み込まれない。 代わりにこのコマンドは、シンボル・ファイルが変更された可能性があることや、新しいモジュールをモジュール・リストに追加する必要があることをデバッガーに知らせる。 このコマンドにより、デバッガはモジュール・リストを修正し、指定されたモジュールのシンボル情報を削除する。 実際のシンボル情報は、その情報が必要になるまで、個々の.pdbファイルからは読み込まれない。 (この種のローディングは 遅延シンボルローディング または ディレイドシンボルローディング.)

シンボルのロードを強制するには /f オプションを指定するか ld (Load Symbols) 命令.

について .リロード コマンドは、システムが応答しなくなり(つまりクラッシュし)、デバッグ対象のコンピュータのシンボルを失う可能性がある場合に便利である。 このコマンドは、シンボルツリーを更新した場合にも役立つ。

モジュールがアンロードされていたり、ページアウトしているなど、何らかの理由で画像ヘッダーが正しくない場合、シンボルを正しくロードするには /unl の両方を指定することもできる。 住所 そして サイズ.

について .reload /u コマンドは広範囲の検索を行う。 デバッガはまず モジュール を、パスに関係なく正確なモジュール名で指定する。 デバッガがこの一致を見つけられない場合, モジュール はロードされた画像の名前として扱われる。 例えば、メモリ上に存在するHALがhalacpi.dllというモジュール名を持つ場合、以下のコマンドは両方ともそのシンボルをアンロードする。

kd> .reload /u halacpi.dll

kd> .reload /u hal

ユーザー・モード・デバッグを実行していて、ターゲット・アプリケーションのモジュール・リストに含まれていないモジュールをロードしたい場合は、ターゲット・アプリケーションに /s オプションを使用する。

0:000> .reload /u ntdll.dll
Unloaded ntdll.dll

0:000> .reload /s /f ntdll.dll