我正在使用GDB调试C++代码,当它进入包含标准库对象的某个对象的构造函数时,它会向我显示这些对象的构造函数(如std::map)和下面的所有内容.
我知道next运算符,但我更喜欢基本上黑名单任何标准库代码,这从来不是我正在调查的错误的来源.希望的行为是,一个简单的skip将发送给我下一个"用户土地"代码.
gdb 7.12支持文件通配以指定要在调试器中跳过的文件.相同的文档如下:
https://sourceware.org/gdb/onlinedocs/gdb/Skipping-Over-Functions-and-Files.html
要跳过目录/ usr/include/c ++/5/bits中的所有库头,请将以下行添加到〜/ .gdbinit
# To skip all .h files in /usr/include/c++/5/bits
skip -gfi /usr/include/c++/5/bits/*.h
Run Code Online (Sandbox Code Playgroud)
而不是跳过特定文件,例如stl_vector.h,将以下行添加到〜/ .gdbinit
# To skip the file /usr/include/c++/5/bits/stl_vector.h
skip file /usr/include/c++/5/bits/stl_vector.h
Run Code Online (Sandbox Code Playgroud)
使用gdb 7.11及更低版本执行上述操作会导致以下错误:
Ignore function pending future shared library load? (y or [n]) [answered N; input not from terminal]
Run Code Online (Sandbox Code Playgroud)
但是,gdb 7.12似乎已经解决了上述问题.
此博客解决了gdb版本7.11或更低版本的相同问题.
注 - 您可以使用gdb命令提示符中的以下命令列出标记为跳过的所有文件
info skip
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4196 次 |
| 最近记录: |