是否可以在 gdb 中 grep 或过滤信息源的输出? 比如:
(gdb) info sources | grep bob.cpp
谢谢
是否可以在 gdb 中 grep 或过滤信息源的输出?
更新:
是的。截至提交 ae60f04e08bf(GDB 版本 9 及更高版本)
info sources
可以接受正则表达式和其他参数。来自help info sources
:
All source files in the program or those matching REGEXP.
Usage: info sources [OPTION]... [REGEXP]
By default, REGEXP is used to match anywhere in the filename.
Options:
-dirname
Show only the files having a dirname matching REGEXP.
-basename
Show only the files having a basename matching REGEXP.
以前的答案:
不。这可以被视为一个错误:
info shared
采用可选的正则表达式来过滤共享库,但info sources
没有。
解决方法:
(gdb) set logging on # GDB output will now be copied into gdb.txt
(gdb) set pagination off
(gdb) info sources
(gdb) set logging off
(gdb) shell grep bob.cpp gdb.txt
(gdb) shell rm gdb.txt
如果您需要经常这样做,您可以将以上命令放入用户定义命令中。