这篇文章简要讨论了我面临的同样的问题。本质上,gdb 是否有默认设置或 hack 来停止步进到每个 glib 库中,而只步进到用户文件中?我知道每次它进入其中时我都可以调用finish
,但我宁愿避免一些浪费的按键。
它已经很烦人了,因为它要处理 g++ 的输出。如果这种暴露狂无法阻止,那么这些 GNU 工具有没有好的替代品呢?我确实听说过有关 Eclipse 的好消息,但我只是一个寻求以最小的努力进行快速而肮脏的修复的学生。
如果您有 GDB 7.12.1 或更高版本,您可以将以下内容添加到您的~/.gdbinit
文件中:
skip -gfi /usr/include/c++/*/*/*
skip -gfi /usr/include/c++/*/*
skip -gfi /usr/include/c++/*
Run Code Online (Sandbox Code Playgroud)
仔细检查这些库是否确实是这些库的正确位置。这个答案来自这里。
一些无需编辑 gdb init 的选项
如果您想“跨过”一条线(例如std::vector<int> a;
)而不单步进入它,您可以使用next
。
如果您遇到类似情况int b = is_negative(a[0])
并且想要停下来,is_negative
您有以下几种选择:
a[0]
函数,然后使用finish
再次单步退出。tbreak is_negative
在函数上创建临时断点is_negative
,然后使用next
将在断点处中断的单步执行。如果函数中有许多子调用,则 2 会更快:
is_negative(a[b.at(2)] * c[3]);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
710 次 |
最近记录: |