相关疑难解决方法(0)

如何在GDB中抛出特定的异常类型时中断?

根据文档,我可以通过使用条件断点来打破特定的异常类型.但是条件的语法对我来说不是很清楚:

condition bnum <expression>
Run Code Online (Sandbox Code Playgroud)

看一下表达式语法,我认为这是我需要的模式:

{type} addr

但是,我不知道我应该为addr论证传递什么.我尝试了以下方法:

(gdb) catch throw
(gdb) condition 1 boost::bad_function_call *
Run Code Online (Sandbox Code Playgroud)

但它不起作用(gdb中断所有异常类型).

有人可以帮忙吗?


更新

我也试过了@ Adam的建议,但它会导致错误信息:

(gdb) catch throw boost::bad_function_call
Junk at end of arguments.
Run Code Online (Sandbox Code Playgroud)

没有boost::名称空间

(gdb) catch throw bad_function_call
Junk at end of arguments.
Run Code Online (Sandbox Code Playgroud)


解决方法

打破bad_function_call作品的构造.

c++ gdb

51
推荐指数
3
解决办法
4万
查看次数

标签 统计

c++ ×1

gdb ×1