eclipse调试android NDK C/C++代码配置指南

在经历了无数纠结后,决定写下这篇文章,让后面的开发人员少走弯路~

博文中的图片来自原文,可能会与我的开发环境有少许不同,但是整体步骤是对的。本人在以下环境中测试通过:
系统:Ubuntu 11.04
NDK版本:r6
eclipse版本:3.7

参考原文:
http://www.eclipse.org/sequoyah/documentation/native_debug.php

首先下面5步设置eclipse
第1步:
在AndroidManifest.xml文件中application项中加入android:debuggable="true",你也可以在eclipse里的可视化中设置,如下图。
eclipse调试android <wbr>NDK <wbr>C/C++代码配置指南


第2步:设置你的C/C++调试选项
在Main的选项卡中,在C/C++ Application里面选择app_process作为调试对象(app_process文件会在你运行ndk-gdb时候生成)!而不是你编译出来的*.so文件!这个文件会在 你的项目路径/obj/local/armeabi/app_process  
还有记得选择Disable auto build 配置如下图
eclipse调试android <wbr>NDK <wbr>C/C++代码配置指南

接下来点击图片中红色方框特别标志的地方,设置启动调试的进一步参数

第3步:选择调试启动方式
选择Standard Create Process 然后确定,如图
eclipse调试android <wbr>NDK <wbr>C/C++代码配置指南

第4步:
在Debugger的选项卡中设置debugger模式为gdbserver,而Stop on start at就填你希望当调试开始时候的断点函数名(注意:这个函数名是C/C++的函数名称,即使你没有打上断点当运行到这个函数时会自动暂停)
在Debugger Option栏目框里的Main选项卡的GDB Debugger选择NDK的gdb,这个文件在  NDK目录/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin 里面,可能包含window平台等,请根据自己的开发机器和目标平台做正确的选择!!!接下来,需要修改一些东西,当你编译好你的工程后会生成一个gdb.setup的gdb配置文件,例如  你的工程目录/obj/local/armeabi/gdb.setup,先将该文件做个拷贝,命名为gdb2.setup,然后用打开这个文件将最后一行 target remote :5039删掉,因为接下来我们会在eclipse里面设置,因此这一行是多余的,如果不删掉的话会出错!然后就将改好的文件设置为GDB Command file,整体如下图
eclipse调试android <wbr>NDK <wbr>C/C++代码配置指南

第5步:
在Debugger Option栏目框里的Connection选项卡设置连接类型Type为TCP,端口Port number为5039,如图
eclipse调试android <wbr>NDK <wbr>C/C++代码配置指南

最后修改ndk-gdb这个文件,该文件位于你的NDK目录下,先将该文件做个拷贝,命名为ndk-gdb2,然后打开,将最后一行  $GDBCLIENT -x `native_path $GDBSETUP` 删掉,这一行的功能是启动控制台的gdb我们已经在eclipse里启动了,所以不需要这行!

具体调试步骤:
1.用eclipse启动android的java调试在你自己的Activity类中的onCreate方法中加一个断点,避免程序一闪而过你还没来得及启动C/C++部分的调试。
2.在你的工程目录下运行刚才修改好的ndk-gdb2,如果你需要一些信息可以在后面加上--verbose参数。
3.启动eclipse的C/C++调试

启动成功后如下图(这张图是我自己的,呵呵...)
eclipse调试android <wbr>NDK <wbr>C/C++代码配置指南



一些比较弱智的个人心得:
android的模拟器是可以正常使用超级用户的权限的,当你是用真机设备调试的时候请确保你的真机设备已经root否则会出现一些权限的错误,甚至导致莫名奇妙的问题...我就被这些问题纠结了几天....
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值