使用 .dll 函数生成小型转储,其中应用程序不是由 Visual Studio 创建的
我有一个使用 Visual Studio 2005(非托管 C++)生成的 .dll 文件。在 DLL 内的各种函数中,我可以检测错误并调用 DLL 内的另一个函数来生成小型转储(使用 dbghelp.dll)。
当使用 DLL 的应用程序也是 VS2005 生成的程序时,这种方法非常有效。但是,当我使用 National InstrumentMeasurement Studio/CVI 生成应用程序(使用纯 C 语言,这并不重要)时,它没有获得 .pdb 文件(令人惊讶!)。结果,当我用 VS2005 打开生成的 .dmp 文件时,它告诉我应用程序不是通过调试构建的(但确实如此!),并且显示的堆栈是无用的。
CVI 应用程序成功使用了该 DLL 中的许多(40 多个)其他函数。这似乎证明了非 VS 应用程序成功访问了 DLL 函数。
National Instruments 显然可以使用 DrWatson 的完整转储,因此这一定是可能的。
有人知道如何获取使用 .dmp 文件所需的内容吗?
总结一下:没有 .NET,函数访问正常,生成的小型转储文件似乎无法由 Visual Studio 使用。
感谢您的帮助。
I have a .dll file produced with Visual Studio 2005 (unmanaged C++). In various functions within the DLL, I can detect errors and call another function within the DLL to produce a minidump (using dbghelp.dll) .
This works perfectly when the application using the DLL is also a VS2005-produced program. However, when I use National Instrument Measurement Studio/CVI to produce the application (in plain C, not that it should matter), it does not get a .pdb file (surprise!). As a result, when I open the generated .dmp file with VS2005, it tells me the application was not built with debugging (but it was!) and the stack shown is useless.
Many (40+) other functions in this DLL are successfully used by the CVI application. This would seem to demonstrate the successful access of the DLL functions from the non-VS application.
National Instruments apparently can use a full dump from DrWatson, so it must be possible.
Does anybody know how to get what is needed for using the .dmp file?
To summarize: No .NET, function access is fine, generated minidump files do not seem usable by Visual Studio.
Thanks for your help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须具有符号(至少是 dllexports)才能分析转储文件。尝试使用 Windows 调试工具 (WinDBG) 打开小型转储文件并查看您得到的内容。 WinDBG 在分析转储方面比 VisualStudio 2005 做得更好。
You must have symbols (at least dllexports) to be able to analyze the dump file. Try use Debugging Tools for Windows (WinDBG) to open the minidump file and see what you've got. WinDBG does a much better job analyzing dumps than VisualStudio 2005.