c++ - 如何调试在未处理的异常中终止的程序?

标签 c++ linux exception

我在 Linux 平台上用 C++ 编程。

我的程序因这个(未处理的???)异常而终止:

“在抛出'long'实例后调用终止” 中止

抛出异常的代码在 try-catch block 中,那么为什么会发生这种情况? 从函数返回时抛出异常。

我习惯于 C 编程,对 C++ 的经验很少(这是主要问题)。我不知道如何调试这个问题。我不期待解决方案,而是调试此问题的方向/指针。

提前致谢。

最佳答案

您可以在 gdb 下运行您的应用程序(已使用 -g 使用调试信息构建它)并在使用以下命令抛出异常时让它中断:

(gdb) catch throw

这会将您带到异常的起源。这个问题提供了更多信息:

请注意,抛出序数类型(例如 long)有点不寻常。它可能在一些临时代码中,因此四处搜索可能会很快找到它。

关于c++ - 如何调试在未处理的异常中终止的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1789195/

相关文章:

c++ - 使用 Qt/C++ 的排序算法 - 对结构的 QList 进行排序

c++ - 如何使用语法树编写 C 或 C++ 程序来检测另一个 C 程序中的模块

c++ - Rust 迭代器和 C++ 迭代器之间的主要区别是什么?

linux - 使用相同的配置和构建实现多个 jenkins

linux - 使用 grep 在同一文本行中搜索多个模式[由换行符分隔]

c++ - 使用 WaitForMultipleObjects 时如何获取哪个对象超时?

linux - 如何更改双引号字符

Java:枚举中的异常?

java - Mule - 抛出异常直到成功

时间:2019-03-17 标签:c#asyncawait