我有一个使用不同dll的程序,它崩溃了。我正试图用WinDbg找出坠机的原因,但到目前为止我还没有运气。
我有.dmp文件,但是我尝试过附加作为符号路径,我也尝试在符号路径中添加dll和其他一些东西,但是它一直告诉我它找不到myProgram.dmp/符号等等,或者只是找不到符号。
使用.dmp文件的正确方法是什么?
感谢我是新手,在线文档似乎只对那些没有DLL和其他非内置DLL的程序有帮助。
其中一些错误的示例:
*错误:找不到符号文件。默认情况下导出mydll.dll符号 *错误:模块加载已完成,但无法为myprogram.dll加载符号 找不到: c:\users\me\desktop\myprogram.dmp\symbols\dll\ole32.pdb
我成功地加载了默认窗口符号,将下载的符号添加到符号路径中。必须将项目中使用的DLL添加到“符号”文件夹或其他地方吗?
PRIMARY_PROBLEM_CLASS: WRONG_SYMBOLS C:\用户\me\桌面\分配\4. DPI-600测试\DumpFileDebugging\符号
发布于 2014-07-03 09:40:33
首先,为您的私人符号设置一条路径。我们叫它X:\我的符号。将所有PDB复制到该文件夹中,就像一个平面列表一样。在WinDbg中,将符号路径设置为该文件夹
.sympath X:\mysymbols接下来,让WinDbg找到微软的东西。创建一个文件夹X:\micro符号。不要在里面放任何东西,不要使用与X:\my符号相同的文件夹。将该文件夹添加到符号路径:
.symfix+ X:\microsymbols现在一切都已正确设置,请告诉调试器刷新:
.reload在少数情况下,只有一个
.reload /f; ld *很有帮助。
如果你还不走运,试试
!sym noisy以便调试器告诉您符号到底有什么问题。查找错误消息并尝试修复它们。
如果它仍然出错,您可能根本没有正确的PDB。PDB通过一种散列/时间戳与模块(DLL和EXE)相关联。所以要么获得正确的PDBs,要么尝试
.symopt+ 0x40这迫使调试器在不检查哈希的情况下加载所获得的任何内容。要注意,如果离得太远,可能会产生误解。
https://stackoverflow.com/questions/24547773
复制相似问题