3

像这样捕捉,使用 GDB

catch throw

抛出异常时,程序停止。

抛出异常但被程序捕获时如何使GDB不停止?或者我应该有全局try-catch而不使用GDB

catch throw

?

编辑1

try
{
  // every time exception is thrown
  // program is stopped by GDB
}
catch(const std::exception &e)
{
  // even if the exception is caught by the program
}

EDIT2启动 gdb

gdb
file /usr/home/user/program
shell ps x
attach #pid
catch throw
c
4

1 回答 1

4

catch throw将捕获所有抛出的异常,并且没有办法限制它。

您在这里至少有两个选择。你可以根本不使用catch throw,如果你使用某种风格的unix,如果它不会被捕获,它将分段错误并在抛出异常的点停止。

__raise_exception或者,您可以在ftp://ftp.gnu.org/pub/old-gnu/Manuals/gdb/html_node/gdb_30.html上设置断点(这是我使用 google 时的第一次点击 - 请尝试研究在 Stackoverflow 上发帖之前自己动手)。

于 2012-12-09T05:20:58.817 回答