我如何挂钩到 gdb 中的命令 x?

How can I hook to the command x in gdb?

我试过连接到其他命令,例如 echo,效果很好。但是当涉及到挂钩 x 命令时,它失败了。这是我的 .gdbinit 文件中的代码。

set $pince_injection_failed = 1
set $pince_debugging_mode = 0
define hook-x
  if $pince_injection_failed = 1
    echo asdf
end

define hookpost-x
  if $pince_debugging_mode = 0
    echo zxcv
end

我知道 gdb 不接受挂钩函数的别名。但是 x 已经是一个完整的函数了不是吗?我找不到它的任何别名。我也对此表示怀疑,因为单个字符对于命令来说太短了

感谢 Mark Plotnick,我找到了解决方案。好像又是我的错,我发现有一个函数的结束位置错了,所以所有的函数都在那个函数之后,自然被gdb忽略了。

define keks
  set $lel=0
  while($lel<10)
    x/x 0x00400000
    set $lel = $lel+1
end

注意 while 循环结束时缺少的 end