Skip to main content
 首页 » 编程设计

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

2024年02月20日6三少

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

但是我在调​​用该处理器后如何停止 GDB 时遇到了麻烦。

这是我迄今为止尝试过的:

Android端:

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

客户端:

gdb 
 
target remote localhost:5039 

从这里,我输入了info共享,这样我就可以获得 native 处理器的基址,设置断点,继续,调用处理器,然后它就会停止。

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

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

请您参考如下方法:

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

但听起来您可能在这个过程中获取断点方面找错了方向;不能通过符号名称设置断点吗?你能用调试符号重建二进制文件吗?