首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >让gdb保存一个断点列表?

让gdb保存一个断点列表?
EN

Stack Overflow用户
提问于 2018-03-23 01:35:41
回答 2查看 0关注 0票数 0

好的,信息中断列出了断点,但不是以与此问题中的--command重用它们的格式。gdb是否有一种方法将它们转储到可再次输入的文件中?有时在调试会话中,需要在构建一组测试断点后重新启动gdb。

编辑: .gdbinit文件与--command具有相同的问题。info break命令不会列出命令,而是一张供人类使用的表格。

详细说明,这里是一个来自信息中断的示例:

代码语言:javascript
复制
(gdb)信息中断
Num Type Disp Enb Address什么
1断点保持y 0x08048517 <foo :: bar(void)+7>
EN

回答 2

Stack Overflow用户

发布于 2018-03-23 10:17:24

从GDB7.2开始,您现在可以使用保存断点命令。

代码语言:txt
复制
save breakpoints <filename>
  Save all current breakpoint definitions to a file suitable for use
  in a later debugging session.  To read the saved breakpoint
  definitions, use the `source' command.
票数 0
EN

Stack Overflow用户

发布于 2018-03-23 11:03:05

可以使用日志记录:

代码语言:txt
复制
(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文件现在包含:

代码语言:txt
复制
Num     Type           Disp Enb Address    What
1       breakpoint     keep y   0x08049329 <main+16>

编写一个awk脚本,将其转换为对.gdbinit或者是--command文件很简单。或者,你甚至可以让脚本单独发出。--eval-command到GDB命令行..。

将这个小宏添加到.gdbinit将有助于你完成以下操作:

代码语言:txt
复制
# 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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档