GDB C ++如何停止进入标准库

银色闪光

这篇文章简要讨论了我面临的同样麻烦。从本质上讲,是否存在默认设置或gdb的hack来阻止单步进入每个glib库并且仅步入用户文件?我知道finish每次进入它时我都可以打电话,但是我宁愿避免一些浪费的击键。

处理g ++的输出已经很烦人了。如果这种表现主义不能制止,那么这些gnu工具是否有很好的替代品?我确实听说过有关日食的好消息,但是我只是一个学生,他们以最小的努力寻找快速而肮脏的修复程序。

福克斯先生

如果您具有GDB 7.12.1或更高版本,则可以将以下内容添加到~/.gdbinit文件中:

skip -gfi /usr/include/c++/*/*/*
skip -gfi /usr/include/c++/*/*
skip -gfi /usr/include/c++/*

仔细检查这些文件实际上是否适合这些库。这个答案来自这里

一些不编辑gdb init的选项

如果您想“跨过”一行(如std::vector<int> a;)而不跨入该行,可以使用next

如果您遇到类似情况,int b = is_negative(a[0])并且想中途停留,则is_negative可以选择以下几种方法:

  1. 进入该a[0]功能,然后使用finish再次退出。
  2. 用于tbreak is_negativeis_negative函数上创建一个临时断点,然后用于next执行将在该断点处中断的步骤。

如果在函数中有很多带有子调用的对象,则2会更快:

is_negative(a[b.at(2)] * c[3]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章