シンボルの遅延読み込み

既定では、対象のモジュールが読み込まれると、シンボル情報は実際には読み込まれません。 代わりに、シンボルは必要に応じてデバッガーによって読み込まれます。 これは、シンボルの遅延読み込みまたはシンボルの遅延の読み込みと呼ばれます。 このオプションを有効にすると、認識できないシンボルが検出されるたびにデバッガーによってシンボルが読み込まれます。

シンボル パスが変更されると、たとえば sympath (シンボル パスの設定) コマンドを使用して、エクスポート シンボルを使用して読み込まれたすべてのモジュールが遅延再読み込みされます。 完全な PDB シンボルが含まれるモジュールのシンボルは、PDB シンボルの読み込みに使用された元のパスが新しいパスに含まれなくなった場合、遅延で再読み込みされます。 PDB シンボル ファイルへの元のパスが新しいパスにまだ含まれる場合は、それらのシンボルは遅延で再読み込みされません。

シンボルの遅延読み込みを無効にすると、モジュールが読み込まれるたびにすべてのシンボルが読み取られるため、プロセスの起動が大幅に遅くなる可能性があります。

WinDbg では、[デバッグ] メニューの [制限されていないシンボルの解決] オプションを使用して、モジュール プレフィックスのないシンボルの遅延シンボルの読み込み動作を変更できます。

シンボルの遅延読み込みは、ld (シンボルのロード) コマンドまたは .reload (モジュールの再ロード) コマンドを /f オプションとともに使用することでオーバーライドできます。 これにより、指定したシンボルが直ちに読み込まれますが、他のシンボルの読み込みは遅延されます。

既定では、シンボルの遅延読み込みが有効になっています。 CDB および KD では、-sコマンドライン オプション を使用すると、このオプションがオフになります。 また、tools.ini ファイルの LazyLoad 変数を使用して、CDB でオフにすることもできます。 デバッガーが実行されたら、.symopt+0x4 または .symopt-0x4 を使用して、このオプションをオンまたはオフにすることができます。