gdb调试.docx

来源:互联网 发布:淘宝的食品流通许可证 编辑:程序博客网 时间:2024/04/27 19:40

建议在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了。