【发布时间】:2015-05-25 00:59:59
【问题描述】:
我正在尝试在 Android 设备上远程调试纯 C 程序。
Android 设备(目标)通过 USB 连接到主机。
我所做的是:
从 target 复制以下文件:
/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。 - 然后在 gdb 中:
-
set solib-search-path ...,以及我之前从 target 中提取的库 target remote :5039
-
arm-eabi-gcc 可以连接到远程进程,甚至可以继续(c)执行。但是,我无法设置断点。如果这样做,我会收到以下错误:
Cannot access memory at address xxx.
我错过了什么吗?
谢谢。
【问题讨论】:
标签: android c android-ndk gdb gdbserver