我正在尝试远程调试Android设备上的纯C
程序。
Android设备(目标)通过USB连接到主机。
我做的是:
从目标复制以下文件:
/system/lib
,/vendor/lib
,/system/bin/app_process
和/system/bin/linker
。
:定位:
gdbserver
从NDK
复制到目标设备exe
./gdbserver :5039 exec
在目标上运行gdb服务器
pid
主机:
adb forward tcp:5039 tcp:5039
arm-eabi-gcc exec
。set solib-search-path ...
,我之前从目标中提取的库 target remote :5039
arm-eabi-gcc
可以连接到远程进程,甚至可以继续(c
)执行。但是,我无法设置断点。如果我这样做,我会收到以下错误:
Cannot access memory at address xxx
。
我在这里错过了什么吗?
谢谢。
答案 0 :(得分:0)
所以,在主机,在gdb shell中,在指定远程目标端口之前,我应该输入shared
。此命令加载共享符号。
另外,为了编译,我使用了-ggdb
。