使用gdb,我需要在continue
之前及其中断之后立即运行额外的命令。我以为我会像这样制作用户定义的命令:
define continue
pre_continue
continue
post_continue
end
当然,这在一个无底的递归坑中失败了。有没有办法直接调用内置命令,绕过用户定义的命令?
BTW:我需要将命令命名为continue
,以便我正在使用的gdb前端将调用我的用户定义函数。
答案 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