使用.dll函数生成一个minidump,其中应用程序不是由Visual Studio生成的

时间:2010-12-09 01:15:28

标签: visual-studio-2005 minidump dbghelp

我有一个使用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文件。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您必须具有符号(至少是dllexports)才能分析转储文件。尝试使用Windows调试工具(WinDBG)打开minidump文件,看看你有什么。与VisualStudio 2005相比,WinDBG在分析转储方面做得更好。