调试转储文件调用堆栈没有太多信息

Debugging dump file Call Stack has not much info

本文关键字:太多 信息 堆栈 转储 文件 调用 调试      更新时间:2023-10-16

我们的客户报告了一个"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