GDB。捕获只捕获异常

时间:2012-12-09 05:08:01

标签: c++ c gdb

如上所述,使用GDB

catch throw

抛出异常时,程序停止。

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

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

1 个答案:

答案 0 :(得分:3)

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

这里至少有两个选项。你根本就不能使用catch throw,如果你有一些unix的话,它就会出现错误并在抛出异常的时候停止,如果它不会被捕获的话。

或者,您可以在__raise_exception上设置一个断点,如ftp://ftp.gnu.org/pub/old-gnu/Manuals/gdb/html_node/gdb_30.html所示(这是我使用谷歌时的首次点击 - 请在发布到Stackoverflow之前尝试自行研究)。