6

アプリのクラッシュからミニダンプ ファイルを取得しました。これは 32 ビットのネイティブ アプリであり、64 ビットの Windows で実行されていました。

ミニダンプ ファイルを WinDbg にロードすると、WinDbg はシステム DLL のシンボルをロードしません。シンボル パスを正しく構成しました。

_NT_SYMBOL_PATH=SRV*C:\WebSymbols*http://msdl.microsoft.com/download/symbols

...WinDbg は、32 ビット Windows で作成されたミニダンプのシンボルを正しく読み込むためです。SysWOW64 ディレクトリにある DLL のシンボルをロードしません。

32 ビット Windows 2003 で 32 ビット WinDbg (Debugging Tools 6.9 から) を試し、64 ビット Windows 2008 で 64 ビット WinDbg (同じく Debugging Tools 6.9 から) を試しました。どちらもシンボルの読み込みに失敗します。これは 32 ビットの WinDbg からのものです。

0:014> !sym うるさい
ノイズモード - シンボルプロンプトオン
0:014> .リロード
................................................................... ...................................................
アンロードされたモジュールのリストをロードしています
..
SYMSRV: C:\WebSymbols\ntdll.dll\48E714D0170000\ntdll.dll が見つかりません
SYMSRV: http://msdl.microsoft.com/download/symbols/ntdll.dll/48E714D0170000/ntdll.dll が見つかりません
DBGENG: C:\Windows\SysWOW64\ntdll.dll - ディスクからイメージをマップできませんでした。
イメージ C:\Windows\SysWOW64\ntdll.dll を読み込めません、Win32 エラー 0n2
DBGENG: ntdll.dll - 部分的なシンボル イメージの読み込みでイメージ情報が欠落している
DBGHELP: モジュールがメモリに完全にロードされていません。
DBGHELP: デバッガー提供のデータを使用してシンボルを検索しています。
SYMSRV: C:\WebSymbols\wntdll.pdb\6686D0C5D0554E14953396093DA218A92\wntdll.pdb が見つかりません
SYMSRV: http://msdl.microsoft.com/download/symbols/wntdll.pdb/6686D0C5D0554E14953396093DA218A92/wntdll.pdb が見つかりません
DBGHELP: wntdll.pdb - ファイルが見つかりません
*** 警告: ntdll.dll のタイムスタンプを確認できません
*** エラー: モジュールのロードは完了しましたが、ntdll.dll のシンボルをロードできませんでした
DBGHELP: ntdll - シンボルがロードされていません
SYMSRV: C:\WebSymbols\kernel32.dll\48E7156Cf0000\kernel32.dll が見つかりません
SYMSRV: http://msdl.microsoft.com/download/symbols/kernel32.dll/48E7156Cf0000/kernel32.dll が見つかりません
DBGENG: C:\Windows\SysWOW64\kernel32.dll - ディスクからイメージをマップできませんでした。
イメージ C:\Windows\SysWOW64\kernel32.dll を読み込めません、Win32 エラー 0n2
DBGENG: kernel32.dll - 部分的なシンボル イメージ ロードでイメージ情報が欠落している
DBGHELP: モジュールがメモリに完全にロードされていません。
DBGHELP: デバッガー提供のデータを使用してシンボルを検索しています。
SYMSRV: C:\WebSymbols\wkernel32.pdb\B0C3B36CC7EF4F3E9C168E186A5A6FEB2\wkernel32.pdb が見つかりません
SYMSRV: http://msdl.microsoft.com/download/symbols/wkernel32.pdb/B0C3B36CC7EF4F3E9C168E186A5A6FEB2/wkernel32.pdb が見つかりません
DBGHELP: wkernel32.pdb - ファイルが見つかりません
*** 警告: kernel32.dll のタイムスタンプを確認できません
*** エラー: モジュールのロードは完了しましたが、kernel32.dll のシンボルをロードできませんでした
DBGHELP: kernel32 - シンボルがロードされていません
SYMSRV: C:\WebSymbols\KERNELBASE.dll\48E7156D5a000\KERNELBASE.dll が見つかりません
SYMSRV: http://msdl.microsoft.com/download/symbols/KERNELBASE.dll/48E7156D5a000/KERNELBASE.dll が見つかりません
DBGENG: C:\Windows\SysWOW64\KERNELBASE.dll - ディスクからイメージをマップできませんでした。
DBGENG: KERNELBASE.dll - 部分的なシンボル イメージの読み込みでイメージ情報が欠落している
DBGHELP: モジュールがメモリに完全にロードされていません。
DBGHELP: デバッガー提供のデータを使用してシンボルを検索しています。
SYMSRV: C:\WebSymbols\wkernelbase.pdb\A8683F0C515F469B833E3FA562E0DB251\wkernelbase.pdb が見つかりません
SYMSRV: http://msdl.microsoft.com/download/symbols/wkernelbase.pdb/A8683F0C515F469B833E3FA562E0DB251/wkernelbase.pdb が見つかりません
DBGHELP: wkernelbase.pdb - ファイルが見つかりません
*** 警告: KERNELBASE.dll のタイムスタンプを確認できません
*** エラー: モジュールのロードは完了しましたが、KERNELBASE.dll のシンボルをロードできませんでした
DBGHELP: KERNELBASE - シンボルがロードされていません

何か案は?Microsoft のシンボル サーバーでシンボルを利用できないだけですか?

4

2 に答える 2

5

32 ビット システムまたは 64 ビット システムでデバッグしており、WinDBG の 32 ビット バージョンまたは 64 ビット バージョンを使用していますか? 通常、ダンプを取得したのと同じアーキテクチャ パッケージでデバッグする必要があります。

http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx

「64 ビット プロセッサでアプリケーションをデバッグする場合を除き、Windows 用デバッグ ツールの 32 ビット バージョンが最適です。その場合は、64 ビット パッケージを使用する必要があります。」

また、彼が 64 ビット プラットフォームで実行されている 32 ビット アプリをデバッグしている次の記事もご覧ください。

http://blogs.msdn.com/alejacma/archive/2008/07/18/How-to-use-Windbg-to-debug-a-dump-of-a-32bit-.NET-app-running-on -a-x64-machine.aspx

于 2008-11-05T15:29:45.680 に答える
-1

syswo64\ntdll.dllがSyswow64\ntdll32.dllにコピーされるここで言及されている回避策を検討してください。

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=98781&wa=wsignin1.0

私のために働きます。

于 2009-10-12T06:27:37.693 に答える