我有一个用Visual Studio2005(非托管C++)生成的.dll文件。在DLL中的各种函数中,我可以检测错误并调用DLL中的另一个函数来生成一个小型转储(使用dbghelp.dll)。
当使用DLL的应用程序也是VS2005生成的程序时,这种方法非常有效。然而,当我使用National Instrument Measurement /CVI来生成应用程序时(用普通的C语言,这并不重要),它没有得到一个.pdb文件(令人惊讶!)。因此,当我使用VS2005打开生成的.dmp文件时,它告诉我应用程序不是通过调试构建的(但它确实是!)显示的堆栈是无用的。
此动态链接库中的许多(40+)其他函数被CVI应用程序成功使用。这似乎演示了从非VS应用程序成功访问DLL函数。
National Instruments显然可以使用来自DrWatson的完全转储,所以这肯定是可能的。
有人知道如何获取使用.dmp文件所需的内容吗?
总而言之:没有.NET,函数访问很好,生成的小型转储文件似乎不能用于Visual Studio。
谢谢你的帮助。
发布于 2011-01-10 14:29:36
您必须具有符号(至少是dllexports)才能分析转储文件。尝试使用Debugging Tools for Windows (WinDBG)打开这个小型转储文件,看看您得到了什么。与VisualStudio 2005相比,WinDBG在分析转储方面做得更好。
https://stackoverflow.com/questions/4393997
复制相似问题