如何确保转储文件是由 C++ 编写的未处理异常情况下的应用

发布于 2024-12-02 13:30:38 字数 119 浏览 1 评论 0原文

如何确保在发生未处理的异常时由 C++ 应用程序写入转储文件。

例如,如果不处理除零,那么如何确保转储被写入。

另外,如果我尝试过搜索 Windbg 教程,但没有找到一个好的教程,那就太好了。

How to ensure a dump file is written by C++ application in case of exception which is not handled.

For example if division by zero is not handled then how do ensure Dump is written.

Also It will be great to have windbg tutorial I tried searching on but NOT a good one found .

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

荆棘i 2024-12-09 13:30:38

我假设您正在寻找一种外部方法来创建这些转储(毕竟,您正在询问未处理的异常)。

在 Vista 及更高版本中,您正在寻找的机制称为 Windows 错误报告 - WER。您可以将其配置为创建转储 崩溃时,将它们放置在某个位置。在 Vista 之前,您可以使用 drwtsn32.exe 来执行此操作。您还可以使用 ADPlus 运行程序,一旦进程崩溃,它将创建转储,无需进行任何系统范围的配置。

如果您想从程序本身创建转储,可以使用 MiniDumpWriteDump ,但不太建议这样做。当处于不清楚的状态时,最好让其他进程拍摄您的快照。

至于WinDbg,网上确实有大量信息。我想你可以开始这里,但如果您有具体问题,您应该提出具体问题。

I'm assuming you're looking for an external way to get those dumps created (after all, you're asking about exceptions that are not handled).

In Vista and above, the mechanism you're looking for is called Windows Error Reporting - WER. You can configure it to create dumps upon crash, and place them at a certain location. Prior to Vista, you could do that using drwtsn32.exe. You can also run your program using ADPlus, which will create a dump as soon as the process crashes, without the need for any system-wide configuration.

If you'd like to create a dump from the program itself, you can use MiniDumpWriteDump , but that's less advisable. When in an unclear state, it's better to let some other process take the snapshot of yours.

As for WinDbg, there's really a ton of information on the web. I guess you can start here, but you should ask specific questions if you have specific problems.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文