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

ano*_*orm 2 gdb

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

define continue
    pre_continue
    continue
    post_continue
end
Run Code Online (Sandbox Code Playgroud)

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

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

ks1*_*322 6

您正在寻找用户定义的命令挂钩:

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

还可以定义一个挂钩,它在您执行的命令之后运行.无论何时运行命令foo', if the user-defined commandhookpost-foo'存在,它都会在该命令之后执行(没有参数).对于相同的命令,执行后挂钩可以与预执行挂钩同时存在.

此解决方案应该适合您:

define hook-continue
pre_continue
end

define hookpost-continue
post_continue
end
Run Code Online (Sandbox Code Playgroud)