如上所述,使用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
答案 0 :(得分:3)
catch throw
将捕获所有抛出的异常,并且没有办法限制它。
这里至少有两个选项。你根本就不能使用catch throw
,如果你有一些unix的话,它就会出现错误并在抛出异常的时候停止,如果它不会被捕获的话。
或者,您可以在__raise_exception
上设置一个断点,如ftp://ftp.gnu.org/pub/old-gnu/Manuals/gdb/html_node/gdb_30.html所示(这是我使用谷歌时的首次点击 - 请在发布到Stackoverflow之前尝试自行研究)。