c++ - Win32 : Is there a difference between Dr. Watson 的完整/小型转储并编写我自己的?

标签 c++ winapi dump crash-dumps

我有一个应用程序在发布版本中偶尔会崩溃;不幸的是,它看起来像是在第 3 方 DLL 中崩溃。在尝试处理它时,我一直在如何操作和 Windows 如何创建故障转储的描述的海洋中游泳。

我正在考虑使用这个建议的小型转储:

Getting a dump of a process that crashes on startup

我计划在代码中保留此功能,以便始终为我的应用程序创建转储,而无需事先设置 PC。顺便说一句,此应用程序不用于分发;它将与我们自己的硬件配对,所以我不担心随机用户在应用程序崩溃时在他们的机器上构建转储文件。

补充说明:所有代码都是 C/C++。

Dr. Watson (drwtsn32.exe) 和此代码将为我生成的内容有区别吗?

最佳答案

有了 Watson 博士,只有当博士看到您“崩溃”时,您才会感到沮丧。使用 dumper API,您将能够从应用程序中的任何位置调用它。例如。您可以将普通断言蹦床转储而不是显示对话框。根据我的经验,一旦你的应用程序支持转储,你会发现调查、故障排除和修复各种问题会更容易,因为你可以在任何你认为合适的地方生成完整的转储(甚至是小型转储)代码。

关于c++ - Win32 : Is there a difference between Dr. Watson 的完整/小型转储并编写我自己的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2694701/

相关文章:

c++ - 在 C++ 中,我需要创建一个程序,当输入某个数字时循环并停止,然后显示最大值和最小值

windows - LoadLibraryEx(..., LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR) 加载错误 dll 的解决方法错误

64-bit - 我如何转储 z/OS 上面的内存以进行调试

mysql - 我如何从 mysql 表中转储 blob 字段

java - 当我运行 Java 程序时,我的 intellij-idea-ultimate-edition 总是转储

c++ - 如何从函数中退出而不是从 main() 中退出

c++ - 隔离包含类型时的 std::variant 模板推导

c++ - Eclipse项目中的OSCPack外部库测试用例

c++ - 默认 WM_DESTROY 未正确清理子窗口

c - Sleep() 或 sleep() 有多准确