不重启gdb,是否有可能删除gdb的别名?

6
假设我定义了一个包括别名的新的gdb命令
import gdb
import string
class PrettyPrintString (gdb.Command):
    "Command to print strings with a mix of ascii and hex."

    def __init__(self):
        super (PrettyPrintString, self).__init__("ascii-print",
                gdb.COMMAND_DATA,
                gdb.COMPLETE_EXPRESSION, True)
gdb.execute("alias -a pp = ascii-print", True)

现在,我想对脚本进行小改动,并在同一gdb会话中再次引用它。不幸的是,当我尝试再次引用时,出现以下错误。

gdb.error: Alias already exists: pp

我该如何删除原始别名并使用更新后的脚本?

请注意,别名文档似乎没有说明如何删除别名,并且我尝试了 unaliasdelete,但都没有产生预期的效果。


1
我开始认为没有机制可以做到这一点......也似乎没有列出别名的方法。GDB文档中似乎也没有内置别名的明确列表(例如s)。如果不得不猜测,GDB有内部别名,删除它可能会严重破坏它,而且无法区分用户创建的别名和它自己的别名... - zzxyz
1
我已经第n次发现这个问题,非常令人沮丧。我有一个带有别名的gdb前端,其中一些我想关闭或者至少查看它们在不进行垃圾回收的情况下正在做什么。 - RichieHH
1个回答

0

你可以将关键字定义为函数,而不是别名。例如,我有

define w
   where
end

在我的.gdbinit文件中。重新定义是有效的,而不是重新别名。


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