1

私はソフトウェア会社でシステム ソフトウェア製品の仕事をしています。一昨日、その製品がクラッシュし、コアが表示されました。

正確な問題を見つけるために、関数名(kernel32.dll、ntdll.dll ..関数名が表示されない)を含む完全なコアスタックを知りたいです。Microsoft サイトから WINDOWS デバッグ シンボルをダウンロードしました。 http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx#f

以下の 3 つのパッケージをダウンロードします。 NRL-ENU-DEBUG.exe。

WINDOWS OS バイナリのデバッグ シンボルを読み込もうとしましたが、成功しませんでした。例:ntdll.dllの場合、対応するntdll.pdbを読み込もうとしましたが、Visual Studioスルーエラー、つまり「シンボルファイルntdll.pdbがモジュールと一致しません」

オペレーティング システム: WINDOWS 2003 SP2 を使用しています。

関数名で完全なスタックを取得するのを手伝ってください。

システム ソフトウェアでクラッシュした後のコア スタック。

kernel32.dll!77e4bef7() Asm [以下のフレームは正しくないか、見つからない可能性があります。kernel32.dll のシンボルがロードされていません] Asm kernel32.dll!77e4bef7() Asm kernel32.dll!77e46cfd() Asm ntdll.dll!7c827d29( ) Asm ntdll.dll!7c83d266() Asm ntdll.dll!7c83d2b1() Asm ntdll.dll!7c82d308() Asm ntdll.dll!7c82d30f() Asm ntdll.dll!7c82f380() Asm ntdll.dll!7c82d30f() Asm ntdll.dll!7c82f557() Asm ntdll.dll!7c82a501() Asm ntdll.dll!7c82daee() Asm ntdll.dll!7c82f51a() Asm ntdll.dll!7c82f2c3() Asm kernel32.dll!77e6518d() Asm ntdll. dll!7c829cc2() Asm ntdll.dll!7c829de7() Asm ntdll.dll!7c829e02() Asm ntdll.dll!7c827899() Asm ntdll.dll!7c82ec4a() Asm msvcr80.dll!781787e4() Asm msvcr80.dll! 78178823() Asm sal.dll!SAL_DebugOutput(const char * fmtstr=0x66009318, ...) 行 643 C++ sal.dll!MapSystemError(unsigned long dwerr=0x00000040) 130 行目 + 0xb バイト C++

sal.dll!MapLastError() 行 146 + 0xc バイト C++

sal.dll は私のソフトウェア バイナリであり、sal.dll のデバッグ シンボルを読み込むことができました。

あなたの提案を待っています。

4

1 に答える 1

2

静的セットをダウンロードするのではなく、シンボルサーバーを使用してこれを取得することをお勧めします。(静的セットは、サービスによってすぐに古くなります。)

Symbol Serverの使用に関するKB記事は次のとおりです: http ://support.microsoft.com/kb/311503

これは、VisualStudioとWindbgの両方でサポートされています。

于 2010-01-13T19:15:40.520 に答える