在GDB中,如何从用户定义的命令运行内置命令

时间:2011-11-29 13:41:41

标签: gdb

使用gdb,我需要在continue之前及其中断之后立即运行额外的命令。我以为我会像这样制作用户定义的命令:

define continue
    pre_continue
    continue
    post_continue
end

当然,这在一个无底的递归坑中失败了。有没有办法直接调用内置命令,绕过用户定义的命令?

BTW:我需要将命令命名为continue,以便我正在使用的gdb前端将调用我的用户定义函数。

1 个答案:

答案 0 :(得分:6)

User-defined Command Hooks正是您所寻找的:

  

您可以定义钩子,这是一种特殊的用户定义   命令。每当你运行命令foo', if the user-defined command hook-foo'存在时,它就会被执行(没有参数)   那个命令。

     

也可以定义一个钩子,它在命令之后运行   执行。每当你运行命令foo', if the user-defined command hookpost-foo'存在时,它就被执行(没有参数)   在那个命令之后。执行后挂钩可能同时存在   预执行挂钩,用于相同的命令。

此解决方案应该适合您:

define hook-continue
pre_continue
end

define hookpost-continue
post_continue
end