ダンプファイル解析を実行すると、Microsoftシンボルサーバーを指すようにセットアップシンボルパスが設定されます。 windbgはダンプファイルがどのOSで生成されたか知っていますが、そのOSに正しいシンボルをどのようにダウンロードしますか?windbgでダンプファイルをダウンロードするOSシンボルを確認する方法
0
A
答えて
2
シンボルをバイナリに一致させるために、WinDbgはDebug Directoriesと呼ばれるものを探します。デバッグディレクトリは、PEモジュールのセクションです(これは、すべてのタイプの実行可能ファイルに対してWindowsによって使用されるファイルフォーマットです)。デバッグディレクトリには、単にデバッグ情報のタイプへのリンクが含まれています。これはntdll.dllのために出力され
...
Debug Directories
Time Type Size RVA Pointer
-------- ------ -------- -------- --------
4CC78FB1 cv 22 00102588 101988 Format: RSDS, {30976E0B-FBF7-45EF-8608-99932F2B791F}, 2, ntdll.pdb
4CC78FB1 ( A) 4 00102584 101984 BB03197E
...
:あなたはCMDウィンドウlink /dump /headers <my_module_name>
でコマンドを入力すると、それはこのようなものを出力します。 CV(CodeView用)のデバッグ情報がntdll.pdbに含まれており、そのPDBのGUIDがリンク内のものと一致していることがわかります。そのGUIDは、ビルド時に各モジュールに対してランダムに生成されます。
WinDbgのコマンド!lmi
も、この情報を別の形式でダンプします。
シンボルサーバーからシンボルを読み込むときに、シンボルサーバーに要求が送信され、一致するGUIDを持つ 'ntdll.pdb'という名前のファイルが取得されます。
関連する問題
- 1. WinDbgでダンプファイルを読み取ると0x80004005エラーが発生する
- 2. Python | HTTP - ダウンロードする前にファイルサイズを確認する方法
- 3. mgetでダウンロードしたファイルの数を確認する方法は?
- 4. windbg:プライベートpdbシンボル
- 5. BrowserstackでOSのサブバージョンを確認する
- 6. WIXインストーラでOSを確認する
- 7. PHPでビジターのOSを確認する
- 8. PostgreSQLサーバの状態を確認する方法Mac OS X
- 9. WinDBGで管理例外の詳細を確認するには?
- 10. WinDbgでダンプファイルを解析しようとしています:PEBがページアウトされ、シンボルがロードされません
- 11. QNetworkAccessManager:ダウンロードが完了したことを確認する方法?
- 12. パスワードを確認する方法cakephpをハッシュで確認する方法
- 13. R内のOSの確認方法
- 14. Android OSバージョンの確認方法
- 15. プログラムOSのバージョンを確認する
- 16. WindbgでGetFrameContextを解決する方法
- 17. アップロード中にインターネット接続を確認する方法と、モバイルでダウンロード中です。
- 18. 端末のプログラムのダウンロード確認を確認する
- 19. NSMicrophoneUsageDescriptionをプログラムで確認する方法
- 20. PHPでメールを確認する方法
- 21. jspでログインを確認する方法
- 22. Angularでダイアログモーダルを確認する方法
- 23. Oracleでインデックスを確認する方法
- 24. 私はwindbgでシンボルパスを設定しましたが、windbgが同じexeに対して同じシンボルをダウンロードするたびになぜですか?
- 25. アセンブリでロードされたシンボルをプログラムで確認する
- 26. Linux:ダウンロードせずにftpでファイルのサイズを確認する方法
- 27. Windowsアプリケーション(UWP/PC /タブレット8.1 /モバイル8.x)のオペレーティングシステム(OS)を確認する方法?
- 28. windbg:シンボルのソースファイル名を取得するには?
- 29. URLを確認する方法をスウィフト
- 30. 定義を変更する方法を確認する方法
この情報はアセンブリ内に埋め込まれたPEモジュールの一部ですか?アプリケーションを作成すると、別のOSで異なるサービスパックで実行できます。 PEモジュールに格納されているこの情報が、アプリケーション自体が異なるOSで動作しているときにどのように使用できるのか混乱しています。 –
各PEモジュールには独自のシンボルファイルがあります。 OSは異なるサービスパック、パッチ、ホットフィックス、プライベートバイナリなどの複数のバージョンから構成されているため、「OS用のシンボル」はありません。 –
アプリケーションアセンブリがVista上でコンパイルされたとしましょう。 Windows 7とWindows Server 2008用のダンプを生成します。この場合、PEモジュールはVista用のIDを持つでしょうか?この場合、2つのダンプでWindows 7と2008のシンボルがどのように表示されますか? –