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 查看程序运行情况