WINDOWS 调试符号加载问题。我无法在 Visual Studio 中加载 WINDOWS 操作系统二进制文件 .pdb
我在一家软件公司从事系统软件产品的工作。前天该产品崩溃并显示核心。
为了找出确切的问题,我想知道带有函数名称的完整核心堆栈(kernel32.dll,ntdll.dll ..不显示函数名称)。我已经从 Microsoft 站点下载了 WINDOWS 调试符号。 http://www.microsoft.com/whdc/devtools/debugging/ symbolpkg.mspx#f
下载了以下三个包 1.WindowsServer2003-KB933548-v1-ia64-symbols-NRL-ENU.exe 2. WindowsServer2003-KB933548-v1-x86-symbols-NRL-ENU.exe 3.WindowsServer2003-KB933548-v1-x86-symbols-NRL-ENU-DEBUG.exe。
尝试加载 WINDOWS 操作系统二进制文件的调试符号,但无法成功。 示例:对于 ntdll.dll,我尝试加载相应的 ntdll.pdb,但 Visual Studio 出现错误,即“符号文件 ntdll.pdb 与模块不匹配)
操作系统:我正在使用 WINDOWS 2003 SP2。
请帮助获取完整堆栈 。
我的系统软件崩溃后的核心堆栈
!77e4bef7() Asm [下面的框架可能不正确和/或丢失,没有为 kernel32.dll 加载符号] Asm kernel32.dll!77e4bef7() 汇编 kernel32.dll!77e46cfd() 汇编 ntdll.dll!7c827d29() 汇编 ntdll.dll!7c83d266() 汇编 ntdll.dll!7c83d2b1() 汇编 ntdll.dll!7c82d308() 汇编 ntdll.dll!7c82d30f() 汇编 ntdll.dll!7c82f380() 汇编 ntdll.dll!7c82d30f() 汇编 ntdll.dll!7c82f557() 汇编 ntdll.dll!7c82a501() 汇编 ntdll.dll!7c82daee() 汇编 ntdll.dll!7c82f51a() 汇编 ntdll.dll!7c82f2c3() 汇编 kernel32.dll!77e6518d() 汇编 ntdll.dll!7c829cc2() 汇编 ntdll.dll!7c829de7() 汇编 ntdll.dll!7c829e02() 汇编 ntdll.dll!7c827899()汇编 ntdll.dll!7c82ec4a() 汇编 msvcr80.dll!781787e4()汇编 msvcr80.dll!78178823()汇编 sal.dll!SAL_DebugOutput(const char * fmtstr=0x66009318, ...) 第 643 行 C++ sal.dll!MapSystemError(unsigned long dwerr=0x00000040) Line 130 + 0xb bytes C++
sal.dll!MapLastError() Line 146 + 0xc bytes C++
sal.dll 是我的软件二进制文件,我能够加载 sal 的调试符号。 dll。
我等待你的建议。
I am working in a software company on a system software product. Day before yesterday that product got crashed and core shown.
To findout exact problem, I want to know full core stack with function names(kernel32.dll, ntdll.dll .. not showing function names). I have downloaded WINDOWS debug symbols from Microsoft site.
http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx#f
Downloaded following three packages
1. WindowsServer2003-KB933548-v1-ia64-symbols-NRL-ENU.exe
2. WindowsServer2003-KB933548-v1-x86-symbols-NRL-ENU.exe
3. WindowsServer2003-KB933548-v1-x86-symbols-NRL-ENU-DEBUG.exe.
Tried to load debug symbols for the WINDOWS OS binaries, but I could not succeeded.
Example : for ntdll.dll I tried to load corresponding ntdll.pdb but Visual studio throughing error i.e "The symbol file ntdll.pdb does not match the module)
Operating system: I am using WINDOWS 2003 SP2 .
Please please help to get full stack with function names.
Core Stack after crash on my system software.
kernel32.dll!77e4bef7() Asm
[Frames below may be incorrect and/or missing, no symbols loaded for 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, ...) Line 643 C++
sal.dll!MapSystemError(unsigned long dwerr=0x00000040) Line 130 + 0xb bytes C++
sal.dll!MapLastError() Line 146 + 0xc bytes C++
sal.dll is a my software binary and I was able to load debug symbol for sal.dll.
I waiting for your suggestions.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您将需要使用符号服务器来获取它,而不是下载静态集。 (静态集很快就会因服务而过时。)
以下是有关使用符号服务器的知识库文章:
http://support.microsoft.com/kb/311503
Visual Studio 都支持和 Windbg 为此。
You will want to use symbol server to get this rather than downloading a static set. (A static set quickly becomes outdated with servicing.)
Here is a KB article about using Symbol Server:
http://support.microsoft.com/kb/311503
There is support in both Visual studio and Windbg for this.