我如何挂钩到 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
我试过连接到其他命令,例如 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