c++ - 在 Qt Creator 中调试 c++ 程序时如何正确忽略 throw 中断?
问题描述
我正在尝试远程调试一个程序,其中包含很多代码
try { map.at(invalid_index)}catch(...){}
块。我每次都收到一个停止,即使使用“catch throw ignore”作为启动 gdb 命令也是如此。
中断发生在 stl_map.h 的 (__throw_out_of_range(__N("map::at")))
mapped_type&
at(const key_type& __k)
{
iterator __i = lower_bound(__k);
if (__i == end() || key_comp()(__k, (*__i).first))
__throw_out_of_range(__N("map::at"));
return (*__i).second;
}
调试目标是 x86-64 嵌入式平台,板载自定义 Ubuntu 14.04。
我可以做其他事情来强制 gdb 仅在我的显式断点处停止(不再出现 2-3 次)吗?
解决方案
推荐阅读
- c# - how to state a If to verify if a class has a specific attributte?
- go - 如何只为更改的模板运行 go generate?
- google-analytics - 在 GA 上针对 FB 广告进行电子邮件营销跟踪
- reactjs - 如何为反应路由器编写拦截器?
- python - 错误:“没有唯一约束匹配引用表的给定键”尽管包含主键
- gradle - 如何访问分发存档
- java - JavaFX:未设置位置
- java - 扫描器在 for 循环中,在获取任何输入之前循环一次
- .net - 如何使用 Visual Studio 在 Excel 中的单元格中创建超链接?
- html - Firefox 验证不会阻止用户输入无效输入