我有一个使用Visual Studio 2005(非托管C ++)生成的.dll文件。在DLL中的各种函数中,我可以检测错误并调用DLL中的另一个函数来生成一个minidump(使用dbghelp.dll)。
当使用DLL的应用程序也是VS2005生成的程序时,这非常有效。但是,当我使用National Instrument Measurement Studio / CVI生成应用程序时(在普通的C中,并不是它应该重要),它没有得到.pdb文件(惊喜!)。因此,当我用VS2005打开生成的.dmp文件时,它告诉我应用程序没有使用调试构建(但它是!)并且显示的堆栈是无用的。
CVI应用程序成功使用了此DLL中的许多(40+)个其他函数。这似乎证明了从非VS应用程序成功访问DLL函数。
National Instruments显然可以使用DrWatson的完全转储,因此必须有可能。
有人知道如何获得使用.dmp文件所需的内容吗?
总结一下:没有.NET,功能访问很好,Visual Studio似乎无法使用生成的minidump文件。
感谢您的帮助。
答案 0 :(得分:0)
您必须具有符号(至少是dllexports)才能分析转储文件。尝试使用Windows调试工具(WinDBG)打开minidump文件,看看你有什么。与VisualStudio 2005相比,WinDBG在分析转储方面做得更好。