是否可以在不重新启动gdb的情况下删除gdb别名?

是否可以在不重新启动gdb的情况下删除gdb别名?,gdb,alias,Gdb,Alias,假设我定义了一个包含别名的 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.COM

假设我定义了一个包含别名的

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
如何删除原始别名和更新脚本的来源?


请注意,似乎没有提到任何关于删除别名的内容,我尝试了
unalias
delete
,但都没有达到预期效果。

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

define w
   where
end

在我的.gdbinit中。与重新别名相反,重新定义是有效的。

我开始认为没有任何机制可以做到这一点……似乎也没有办法列出别名。gdb文档似乎也没有明确的内置别名列表(例如
s
)。如果让我猜的话,gdb有内部别名,删除它会让它崩溃,而且无法区分用户创建的和它自己的…我第n次发现了这个。非常令人沮丧。我有一个gdb前端,它带有别名,我想关闭其中一些别名,或者至少看看它们在做什么,而不必去垃圾桶潜水。