我有一个用 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,函数访问很好,生成的 minidump 文件似乎不适用于 Visual Studio。
谢谢你的帮助。