使用 gdb/gdbserver 远程设置断点

使用 gdb/gdbserver 远程设置断点

我正在远程主机上调试易受攻击的应用程序。我在主机上设置了 gbserver:

gdbserver host:1234 /my/target/app

在我的本地主机上,我已连接:

$ gdb /same/target/app
gdb$ target extended-remote 192.168.0.100:1234

我连接成功并且可以继续在目标指令上设置断点,即:

$gdb disas vuln_function
....
   0x08048e6b <+116>:   ret
End of assembler dump.
gdb$ b *0x08048e6b
Breakpoint 1 at 0x8048e6b

查看反汇编的函数代码并在主机本身上对其进行测试,我 100% 确定我在正确的地址上中断,并且无论如何我都会触发缓冲区溢出,这应该使 gdb 自行中断。

但是我的 gdb 客户端没有得到通常的断点,但什么也没有发生。 gdbserver 在 BO 上冻结(所以我猜它确实在 ret 上中断)而没有抛出段错误。除了没有在断点上提示我之外,gdb 似乎没有崩溃或行为异常。

使用gdbserver调试时有没有特殊的方法来设置断点?

相关内容