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

7

我对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个回答

10

GDB能在别名中使用文件名吗?

看起来是不行的。看起来别名不能有任何命令参数,包括文件名。这个别名也失败了:

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

我是不是在寻找除了“别名”以外的其他东西?

是的,你可以使用用户自定义命令代替:

(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) 

4
太棒了!谢谢!对于那些想知道的人,您可以将定义放在.gdbinit中,以换行符分隔,就像您所期望的那样,而不需要提示。 - Phildo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接