2011-11-29 64 views
1

使用gdb,我需要在continue之前及其中断之后立即运行额外的命令。我以为我会做一个用户定义的命令是这样的:在GDB中,如何从用户定义的命令运行内置命令

define continue 
    pre_continue 
    continue 
    post_continue 
end 

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

顺便说一句:我需要命令命名为continue,以便我使用的gdb前端将调用我的用户定义函数。

回答

5

User-defined Command Hooks是你在找什么:

可以定义挂钩,这是一种特殊的用户定义 命令。无论何时运行命令foo', if the user-defined command hook-foo'exists,它都会在 命令之前执行(不带参数)。

也可以定义一个挂钩,它会在执行命令 后运行。无论何时运行命令foo', if the user-defined command hookpost-foo'exists,它都会在该命令后执行(不带参数) 。对于相同的命令,执行后挂钩可能与预执行挂钩同时存在。

这个解决方案应该为你工作:

define hook-continue 
pre_continue 
end 

define hookpost-continue 
post_continue 
end 
+0

只是我一直在寻找的东西!大。谢谢。我会upvote你的答案,但我没有足够高的声誉:-) – anorm

+0

但现在我做... – anorm

相关问题