使用GDB 像这样进行捕获:

catch throw

引发异常时,程序停止。

如何使GDB在引发异常但被程序捕获时不停止?
还是应该使用GDB
进行全局try-catch而不是
catch throw



EDIT1
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

最佳答案

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

您在这里至少有两个选择。您根本无法使用catch throw,如果您使用的是Unix风格,它将被隔离,并在引发异常的地方停止(如果不会被捕获)。

或者,您可以在ftp://ftp.gnu.org/pub/old-gnu/Manuals/gdb/html_node/gdb_30.html上设置一个断点,如ojit_a所示(这是我使用Google时的第一个匹配点-请尝试研究自己,然后再发布在Stackoverflow上)。

07-24 09:46
查看更多