gdbserver 调试程序
底层调用c/c++ 动态库, 动态库带调试选项
查看手机IP 192.168.1.177
包所调用的c/c++ 库是在/data/data/包名/lib/ 下
1、将安卓ndk 文件夹/usr/local/src/android-ndk-r9d/prebuilt/android-arm/gdbserver/gdbserver 在win 下通过adb push 到 /data/local/tmp/ 文件夹下
2、进入刚刚带带ndk-build 编译环境的linux pc机上, 建立一个debug文件夹, 在该debug 文件夹下增加一个gdb 文件夹, (debug/gdb)
3、可在win 系统下 debug/gdb文件夹 下通过adb : adb pull /system/lib 、 adb pull /system/bin/app_process , 将调用的动态库 mv libblcp_app.so debug/gdb/ 、mv libblcp_app.so debug/gdb/
4、/usr/local/src/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gdb 启动 (此处gdb 选的类型要和手机上gdbserver 一致)
5、file /home/*/*/debug/gdb/app_process
6、set solib-search-path /home/*/*/debug/gdb
7、adb shell 、 su 、am start -a android.intent.action.MAIN -n org.bl/org.bl.ApjsuaActivity 启动 然后 ps 查看 org.bl 包名 进程pid(org.bl 为java 包名, ApjsuaActivity
为类名)
8、/data/local/tmp/gdbserver :1234 --attach pid
9、进入刚刚pc 机上启动的gdb 环境下target remote 192.168.1.177:1234
10、c 继续运行
11、 在手机上操作, 观看gdb 中程序运行, 也可打断点
可结合logcat 查看程序执行情况