好的,信息中断列出了断点,但不是以与此问题中的--command重用它们的格式。gdb是否有一种方法将它们转储到可再次输入的文件中?有时在调试会话中,需要在构建一组测试断点后重新启动gdb。
编辑: .gdbinit文件与--command具有相同的问题。info break命令不会列出命令,而是一张供人类使用的表格。
详细说明,这里是一个来自信息中断的示例:
(gdb)信息中断
Num Type Disp Enb Address什么
1断点保持y 0x08048517 <foo :: bar(void)+7>
发布于 2018-03-23 11:03:05
可以使用日志记录:
(gdb) b main
Breakpoint 1 at 0x8049329
(gdb) info break
Num Type Disp Enb Address What
1 breakpoint keep y 0x08049329 <main+16>
(gdb) set logging file breaks.txt
(gdb) set logging on
Copying output to breaks.txt.
(gdb) info break
Num Type Disp Enb Address What
1 breakpoint keep y 0x08049329 <main+16>
(gdb) q
txt文件现在包含:
Num Type Disp Enb Address What
1 breakpoint keep y 0x08049329 <main+16>
编写一个awk脚本,将其转换为对.gdbinit
或者是--command
文件很简单。或者,你甚至可以让脚本单独发出。--eval-command
到GDB命令行..。
将这个小宏添加到.gdbinit将有助于你完成以下操作:
# call with dump_breaks file.txt
define dump_breaks
set logging file $arg0
set logging redirect on
set logging on
info breakpoints
set logging off
set logging redirect off
end
https://stackoverflow.com/questions/-100007746
复制相似问题