用于快速保存/加载断点的gdb别名

时间:2015-05-27 23:39:56

标签: c debugging gdb

所以我对gdb很新,并且刚刚了解到你可以用以下方法保存断点:

save breakpoints filename

并加载

source filename

这很棒,但因为每次进入/退出gdb时我或多或少都会计划这样做,我想把它归结为快速别名。

所以,在我的〜/ .gdbinit中我有行

alias savebps = save breakpoints .gdb_bps
alias loadbps = source .gdb_bps
loadbps

不幸的是,每次打开gdb我都会收到错误:

Invalid command to alias to: save breakpoints .gdb_bps

我知道(/强烈认为)我的语法正确,因为我已经测试了

alias savebps = help

并且该别名有效。所以我认为将非gdb命令字(文件名)作为别名的一部分是一个问题。

所以,我的问题是:

  • 我是完全愚蠢的,已经有一种很好的方法可以自动保存和维护我的断点列表吗?
  • GDB可以在别名中使用文件名吗?或者我在寻找“别名”以外的东西吗?
  • 如果他们可以有文件名,我做错了什么?

哦,作为一个注释,'。gdb_bps'是一个任意的文件名,我只是想出了一个很好的不引人注目的东西,很容易.gitignore和东西。

谢谢!

1 个答案:

答案 0 :(得分:3)

  

GDB可以在别名中使用文件名吗?

看起来没有。看起来别名不能有任何命令参数,而不仅仅是文件名。这个别名也失败了:

(gdb) alias spe = set print elements 0
Invalid command to alias to: set print elements 0
  

或者我正在寻找除别名以外的其他内容?

是的,您可以改为使用user-defined command

(gdb) define savebps
Type commands for definition of "savebps".
End with a line saying just "end".
>save breakpoints .gdb_bps
>end
(gdb) 
(gdb) define loadbps
Type commands for definition of "loadbps".
End with a line saying just "end".
>source .gdb_bps
>end
(gdb)