有没有办法如何管道内部gdb命令输出到一些shell命令如grep
- [cmd] ! grep
mdb
的变种?GDB - 管道输出的内部命令到shell命令
要更清楚:在solaris mdb
中,您可以例如写
main::dis ! grep call
检测哪些功能从主要调用(或grep一些注册名称,看看它是如何改变)。我感兴趣的是,如果在gdb中有这样的可能性,而不需要从gdb切换。
有没有办法如何管道内部gdb命令输出到一些shell命令如grep
- [cmd] ! grep
mdb
的变种?GDB - 管道输出的内部命令到shell命令
要更清楚:在solaris mdb
中,您可以例如写
main::dis ! grep call
检测哪些功能从主要调用(或grep一些注册名称,看看它是如何改变)。我感兴趣的是,如果在gdb中有这样的可能性,而不需要从gdb切换。
我不确定是否正确理解了您的问题。如果您想要在调试会话期间运行的GDB命令的日志结果,那么从GDB开始支持。
show logging # displays weather logging is on/off
set logging on # enable logging
set logging off # disable logging
set logging file log-file.txt # set name for log file, default is gdb.txt
日志文件将在当前目录中生成。
而且您可以附加调试会话日志或使用
set logging overwrite <on/off>
谢谢你的回答。日志记录不完全是我正在寻找的。在Solaris mdb中,可以编写例如'main :: dis! grep调用“,调试器将调用grep来处理拆分结果。我在gdb中寻找类似的方法 - 运行grease of dissasemble命令输出(或者发送给less)。我可以使用例如objdump和grep它的结果,或者从你提到的日志文件中获得输出,但是我有兴趣知道是否有办法在gdb中执行它。 – Michy
不要忘记将分页设置为关闭。logging/shell命令是目前唯一的方法,例如设置日志记录,disas main,设置注销,shell grep调用gdb.txt,有人正在处理管道命令,这可能会使这个更直接 – matt
一个新的GDB的命令已经出台,即管创建每个调试会话新。如果要使用某个shell命令或某个脚本处理GDB命令的输出,可以使用这个新命令完成。
感谢您的信息,这正是我错过了。希望它能很快成为官方发布的一部分。 – Michy
感谢链接已关闭... – sillyMunky
也许是时候开始寻找到Python脚本来定义新的命令:http://stackoverflow.com/questions/4060565/how-to-script-gdb-with-python-example-add- breakpoints-run-what-breakpoint-d :-) –