procdump 在异常上创建转储后程序继续执行

问题描述

我正在抛出一个异常 throw std::exception("dummy")(作为测试),该异常在任何地方都没有被捕获。
如果没有附加 ProcDump,这会立即使进程崩溃。

当我将带有 -e 的 ProcDump 附加到调试版本时,ProcDump 会正确检测未处理的异常、创建故障转储并退出。 但程序继续执行,就好像从未抛出异常一样。

我可以在 ProcDump 退出后手动使进程崩溃,但我真的不喜欢在崩溃后代码继续运行的想法,即使崩溃只是几毫秒。

这是什么原因造成的?我如何确保我的程序崩溃(并且崩溃转储正确地代表了崩溃点)?这是 ProcDump 的问题还是我使用它的方式的问题?

编辑:我知道有很多愚蠢的问题来自那些不愿意只阅读文档的人,但我恳求您至少给询问者一个机会,而不是仅仅假设愚蠢和投反对票。这个问题已经死了,不会引起任何关注,因为一个没有耐心和无能的人名声太大。

这是重现此问题的最小示例:

#include <iostream>

int main() {
    char c;
    std::cin >> c;
    if (c == 'e')
        throw std::exception("dummy");
    std::cout << "clean exit" << std::endl;
    return 0;
}

我已经用 m$ clang-cl 和 msvc 试过了。我已经尝试了每一个 ProcDump 开关,甚至在与多个二进制文件的所有可能组合中都模糊地与我的问题相关。 这不是“我试过一次执行这个命令但没有成功,请哈哈哈哈!!!111”的问题

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)