对android&安卓下jni的单步调试

前提

        由于实验需要,不得不使用单步调试。之前我一直都是绕道而行,最近几天我发现这个问题不能绕过去,最后选择了面对。这个过程是残酷的,试过了好多方法,都没有成功。最后真是花了九牛二虎之力才讲此配置成功,使用了android studio,Eclipse。在Linux上尝试过,Windows上也尝试过。希望我配置过程能让大家少走弯路,毕竟是亲身经历了的。废话不多说,切入正题。

环境配置

    Windows上的配置和Linux上的配置过程都差不多。简单说明,下载的IDE工具我使用的是Eclipse,SDK,NDK。在Linux上面android studio配置了好久,使用这个IDE时需要注意的是gradle的配置。特别是从Eclipse上导出的项目导入到android studio里面。可能会由于版本不匹配的原因,这个版本不匹配主要表现在build.gradle配置文件中。如果不匹配那就从新配置下载地址,刷新之后,AS(对android studio的简称)会自动下载。之后配置和Eclipse还有些不一样,主要是格式,Eclipse使用了xml,而AS使用了groovy语言。
主要步骤:
  • 设置NDK_PATH路径,在Windows下面是在环境变量那里添加,Linux是在home目录下.bashrc或者.bash中添加。
  • 设置SDK_PATH路径,同上。
  • 在IDE开发工具中添加这些路径。


 接下来就是配置IDE环境。如下:

Eclipse下是在Windows-->Preferences里面。


NDK的配置:


NDK单步调试

      我使用的环境是Windows + Cygwin。我想在Linux下还要更容易一些,个人见解,主要是因为android系统是出自Linux,很多驱动方面的东西都不用担心。现在配置NDK的Debug。
第一步:在Cygwin的.bashrc里面配置相关环境变量,我的是:

Cygwin将Windows下面的磁盘全部都以./cygdrive/磁盘符号,的形式给出的。而不是H:/...这个配置好了之后,将Cygwin下面的bin文件路径添加到Windows的高级环境变量中去,这样我们在Windows下面的命令提示符里面输入Linux的命令,如ls,ndk-build,ndk-gdb等命令。
如:

配置项目的Application.mk

        需要配置的选项:

配置编译项

Project-->Properties

配置NDKROOT

配置Debug

      右击项目,然后选择Debug as


      进入Debug Configurations

双击C/C++ Application会生成一个可执行文件。


项目在编译之后就会在obj中生成app_process、gdb.setup、libc.so、libxxx.so以及linker,根据手机的支持选定armeabi或armeabi-v7a目录下的内容。

将gdb.setup复制一份,假设复制成gdb2.setup,并删除file obj/local/armeabi/app_process
target remote :5039
这行数据。


然后在设置Debug Configuration,选择C/C++ Application下面的应用,选择Main选项卡,进行设置。


然后切换到Debugger选项卡里面设置:


设置Select other


这些设置好之后,对项目重新编译。Debug as运行项目。当项目启动之后,就在Cygwin中进入到项目的目录,使用ndk-gdb --verbose对运行的程序attach,最后就可以调试了。运行效果如下:


总结:

      这是使用了两天配置的环境,希望对大家有一定的帮助,这也是我写下来的原因。时间不早了,该去吃饭了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值