如何在python中覆盖gdb命令,然后在一些参数处理后调用底层的gdb命令(不使其递归)

时间:2015-03-10 17:20:11

标签: python gdb

我一直在阅读大量文档和实验,但无法找到答案,希望有人可以帮助我。我想覆盖"休息" gdb命令以这种方式,覆盖函数对参数进行一些处理,然后发出实际的gdb" break"命令(使用新参数)。我还尝试过gdb hook命令,现在我能想到的唯一解决方案就是创建一个新的gdb命令,它可以满足需要,但如果我可以覆盖原来的gdb,它对我的​​应用程序来说会很棒。打破"命令。

因此,简而言之,我如何进行以下工作(没有它变得递归)?:

class BreakOverride (gdb.Command):
    "new break override."
    def __init__ (self):
        super (BreakOverride, self).__init__ ("break", gdb.COMMAND_BREAKPOINTS, gdb.COMPLETE_NONE, True)

    def invoke (self, arg, from_tty):
        #Do processing on the arg to create new_args and then call 
        #gdb.execute("break new_args");
        #without the above call becoming recursive back into this same function.

BreakOverride()

非常感谢!

1 个答案:

答案 0 :(得分:0)

是的,这会很棒,但我认为目前没有任何方法可以做到这一点。我相信有一个关于它的错误。一旦我有一个补丁但我从未完成提交它的努力,抱歉。