android 调试NDK的C++代码 使用VisualGDB+VS2005

我们有项目,由于跨平台需要,部分模块使用C++开发,做成so库给android上层调用,这部分C++代码,在手机环境的调试一直不方便,不能直接打断点看变量调试,只能靠log输出定位问题,效率底下


今天终于成功配置了可以调试NDK C++代码的环境,连接手机运行app,直接断点调试,看到变量值,步骤繁琐,坑很多,记录一下,有需要的可以参考。


基本步骤可以看看这几个链接,我主要写一下遇到的问题及解决方法


利用Visual GDB在Visual Studio中进行Android开发

http://www.cnblogs.com/adong7639/p/4119467.html


VisualGDB调试

http://blog.****.net/dj0379/article/details/38637973


下面写步骤

1. 首先Eclipse的安卓工程,要编译可调式版本

这里有一个坑,编译可调式版本,要在工程的 AndroidManifest.xml 文件中加入  android:debuggable="true",但是后来谷歌废弃了这个flag,你设置他工程会报错,不允许编译通过,而VisualGDB必须要求apk有这个属性,否则NDK编译不含有调试信息

这个问题的解决方法 参考这个帖子

http://blog.****.net/kp_liu/article/details/38441763

用方法二,quick fix -> “Disable Check in This File Only” 直接 忽略对 AndroidManifest.xml 文件 的检查

设置好后把工程编译好


2.  安装VisualGDB

我装的这个版本   5.0 beta2

http://download.****.net/download/cuijiayin/9498769

安装后记得拷贝文件**

我给VS2005装了后来调试成功,VS2010装了启动报了一些错误,就没管了


3. 配置VisualGDB

android 调试NDK的C++代码 使用VisualGDB+VS2005

android 调试NDK的C++代码 使用VisualGDB+VS2005


4. VS2005中创建android工程

  3 4两个步骤参考这个帖子就好

http://www.cnblogs.com/adong7639/p/4119467.html

创建项目直接导入已有的eclipse工程就好,文件也不用拷贝进新工程


5.  项目建好后,连接手机调试

android 调试NDK的C++代码 使用VisualGDB+VS2005

这里一个大坑,必须要用root后的手机

没root的手机连接都失败了,root了的手机都一次过


最后 ,打断点,查看运行变量,很顺利