如何使用GDB查找Android目标处理器的基地址

时间:2018-09-07 19:53:09

标签: gdb gdbserver

我目前正在使用GDB,并且想调试Android中的本机处理器,特别是/ system / bin / lmkd。

但是一旦调用该处理器,我就无法停止GDB。

这是我到目前为止尝试过的:

Android端:

./gdbserver tcp:5039 /system/bin/lmkd

客户端

gdb

target remote localhost:5039

从这里,我输入info shared,这样我就可以获取本机处理器的基址,设置断点,继续,调用处理器,然后它将停止。

但是info shared仅显示共享对象文件的地址。

关于如何在我不知道地址的处理器上设置断点的任何建议?

1 个答案:

答案 0 :(得分:0)

您应该能够使用gdb中的info proc mappings找到可执行文件本身在进程地址空间中的映射位置。如果知道需要断点的相对偏移量,则可以将其添加到其中的某个位置,以获取要中断的最终虚拟地址。

但是听起来好像您在为获取断点而树错了树。您不能通过符号名称设置断点吗?您可以使用调试符号重建二进制文件吗?