android下远程GDB调试
2012-06-05 15:43
471 查看
Android下对目标板的GDB调试是基于linux下GDB的调试,其步骤如下。
1 在目标板上启动gdb server,目标板和宿主机是通过TCP协议通信的。而ADB是可以实现这种通信的。利用adbshell进入目标板的shell,然后gdbserver :5039 /system/bin/mediaserver,这个的意思是通过5039端口来监听/system/bin/mediaserver可执行文件。如果成功的话,会显示Process mediaserver created; pid = 4216 Listening on port 5039。这时目标板已经就绪,等待宿主机的连接和控制调试。
gdbserver :5039 /system/bin/mediaserver
2 利用adb打开TCP连接,命令如下:
adb forward tcp:5039 tcp:5039
将宿主机的端口5039和目标板的端口5039相连,实现通信。
3 然后就是利用gdb调试了。注意在宿主机上的可执行程序和目标机上的可执行程序要保持一致,并且在编译的时候利用-g选项参数进行编译,如果想跟踪静态库或者动态库中的执行情况,必须打开所有的调试,将整个工程进行编译。在执行以下命令的时候,注意是在ICS的目录下。
prebuilt/Linux/toolchain-eabi-4.2.1/bin/arm-eabi-gdb out/target/product/product-name/symbols/system/bin/mediaserver
4 设置参数,solib-absolute-path是设置符号的搜索路径,如果有些库在搜索路径还是找不到的话,有必要设置solib-search-path。
set solib-absolute-prefix /absolute-source-path/out/target/product/product-name/symbols
set solib-search-path /absolute-source-path/out/target/product/product-name/symbols/system/lib
5 连接目标板,当连接成功后,在adb shell下回显示Remote debugging from host 127.0.0.1。此时连接成功,就可以像普通的GDB一样,用continue,next ,step ,list,break等进行调试。
target remote :5039
6 android gdb debug 参考见
http://www.kandroid.org/online-pdk/guide/debugging_gdb.html
相关文章推荐
- GDB远程调试Android上的可执行ELF文件
- gdb 远程调试android进程 -转
- gdb 远程调试android进程
- Android下用gdb远程调试
- 用GDB远程调试android native程序
- 用GDB远程调试android native程序
- Android native debug: 手动使用gdbserver远程调试C代码
- GDB + gdbserver 远程调试android native code
- gdb 远程调试 android native 程序
- gdb 远程调试android进程
- Ubuntu和Mac使用gdbserver远程调试android源码
- GDB + gdbserver 远程调试android native code
- gdb远程调试android
- Android下用gdb远程调试
- GDB+gdbserver 远程调试android native code
- GDB + gdbserver 远程调试android native code
- Android gdbserver远程调试native程序方法
- gdb 远程调试android进程
- gdb 远程调试android进程
- Ubuntu下使用gdb远程调试android native程序笔记