建议在ubuntu下进行,cygwin速度很慢很慢,而且经常失灵。
前提工作:
安装好Eclipse、最新版本的ADT(太旧版本的不支持NDK断点debug)、更新SDK还有下载NDK(本次使用的是NDKR7B)。对于SDK和NDK请配置好环境路径。
命令行DEBUG,
做法:
1. 在<application>标签下加入android:debuggable="true"
也可以通过界面设置如图:
2. Hello-jni成为APK,安装到targetdevice。如果Hello-jni已经启动了,可以使用ndk-gdb;如果Hello-jni还没有启动,则可以ndk-gdb –start。(输入ndk-gdb的路径跟输入ndk-build是同一个位置)。能够出现gdb的提示符,则为成功。然后输入需要debug命令即可。
Gdb命令行的提示符
前期准备工作:
在命令行使用ndk-build编译一次
使用ndk-gdb运行一次
添加android tools / add native support
在工程名字鼠标右键,选择Debug As,DebugConfigurations…
C/C++ Application填入/home/leven/code/hello-jni/obj/local/armeabi/app_process
选择Disable auto build
选择Select other,然后出现下图
选择Standard Create Process Launcher。
选择Debugger标签
Debugger选择gdbserver
GDB debugger填入/home/leven/android-ndk-r7b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gdb
去掉Stop on startup at
把hello-jni/obj/local/armeabi/gdb.setup复制一份,我这里暂时取名为gdb_rick.setup。编辑gdb_rick.setup,把最后一行targetremote :5039去掉。
GDB command file 中填入/home/leven/code/hello-jni/obj/local/armeabi/gdb_rick.setup
点击Connection子标签,进入下面界面
Type选择TCP
Port number输入5039
用文本编辑器修改ndk-gdb,修改前请做好备份。把最后一句$GDBCLIENT -x `native_path $GDBSETUP`注释或者直接删掉(加注释的方法是前面加#)。
ndk-build编译好,然后编译出APK,安装到targetdevice后,命令行执行以下命令:
adb forward tcp:5039 tcp:5039
ndk-gdb --force –start
执行完毕后,target device会启动hello-jni,此刻就可以利用eclipse进行断点debug了。