GDB C++ 如何停止进入标准库
GDB C++ How to Stop Stepping Inside Standard Libraries
post 简要讨论了我面临的相同问题。本质上,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++/*
仔细检查这些库实际上是正确的位置。本回答来自here.
一些选项无需编辑 gdb init
如果你想"step over"一行(如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]);
finish
但这是我宁愿避免的一些浪费的击键。
处理 g++ 的输出已经很烦人了。如果无法阻止这种暴露狂,那么这些 gnu 工具是否有好的替代品?我确实听说过关于 eclipse 的好消息,但我只是一个学生,正在寻找以最少的努力进行快速而肮脏的修复。
如果您有 GDB 7.12.1 或更高版本,您可以将以下内容添加到您的 ~/.gdbinit
文件中:
skip -gfi /usr/include/c++/*/*/*
skip -gfi /usr/include/c++/*/*
skip -gfi /usr/include/c++/*
仔细检查这些库实际上是正确的位置。本回答来自here.
一些选项无需编辑 gdb init
如果你想"step over"一行(如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]);