调试转储文件调用堆栈没有太多信息
Debugging dump file Call Stack has not much info
我们的客户报告了一个"Microsoft Visual c++ Runtime Library: Runtime Error!"我们收到了他们的转储文件(. dmp)。我使用Visual Studio 2013调试它,但调用堆栈只有5行:
[External Code]
myprogram.exe!AfxInternalPumpMessage() Line 153
myprogram.exe!AfxWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * lpCmdLine, int nCmdShow) Line 47
myprogram.exe!__tmainCRTStartup() Line 263
[External Code]
所有的行只能追溯到MFC代码,而不能追溯到我们的源代码。
这里的"[外部代码]"指的是什么?
我做错了什么吗?谢谢你!
实际上,我刚刚发现我可以扩展[外部代码],它变成这样:
user32.dll!_NtUserGetMessage@16()
user32.dll!_GetMessageA@16()
myprogram.exe!AfxInternalPumpMessage() Line 153
myprogram.exe!AfxWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * lpCmdLine, int nCmdShow) Line 47
myprogram.exe!__tmainCRTStartup() Line 263
kernel32.dll!@BaseThreadInitThunk@12()
ntdll.dll!___RtlUserThreadStart@8()
ntdll.dll!__RtlUserThreadStart@8()
您试过windbg.exe
了吗?正如@Blacktempel所说,您需要构建中的.pdb
文件。这意味着每次你交付代码给你的客户,你必须保留.pdb
文件(至少)用于调试。
你可以参考下面的链接,https://msdn.microsoft.com/en-us/library/windows/hardware/ff538042 (v = vs.85) . aspx
相关文章:
- 在没有太多条件句的情况下,我如何避免被零除
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 错误:字符数组的初始值设定项太多
- 对象实例化调用构造函数的次数太多
- Levenshtein 两个文件的距离花费了太多时间
- 我有三个 getline,但是一旦编译,输入就太多了
- 将使用太多的纹理插值器 - 带旋转的着色器
- C/C++:socket() 创建在循环中失败,打开的文件太多
- 使用Visual Studio在虚幻引擎中创建一个新的类c ++给了我太多的错误
- C++:数组<>初始值设定项太多
- GLib-ERROR:为GWakeup创建管道:打开的文件太多
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- 我会导致太多内存泄漏,以至于我的计算机无响应吗?
- ZeroMq:打开的文件太多.在同一对象上连续增长的fd使用数
- 读取串行命令花费太多时间
- 为什么 Boost unordered_map 在第一次插入时需要太多时间?
- BRK(0) 花费的时间是否太多?
- Valgrind 声称内存释放中的自由空间太多
- libclang返回了太多关于函数声明的信息
- 调试转储文件调用堆栈没有太多信息