首先是系统环境,win7 64-bit + cygwin64 + android-ndk-r10c + eclipse juno。然后是Android项目的目录结构,Android项目根目录下新建jni目录,jni目录中就放Eclipse的C++项目,即ndk项目。在jni目录中执行ndk-build,完成后Android项目根目录会出现libs目录和obj目录。然后在Eclipse中debug启动Android项目,so库load完成后,在Android根目录用cygwin执行ndk-gdb,然后list一下代码,出来了说明库加载OK,然后就可以设置断点,后面就跟普通gdb一样使用了。还有一点是manifest文件可能要加上android:debuggable="true",加上报错就设置忽略该文件的错误。
如果启动失败了就再执行一次,或重新ndk-build一次后再启动ndk-gdb。
如果出现以下错误:
ERROR: Could not find target device's supported API level!
ndk-gdb will only work if your device is running Android 2.2 or higher.
就执行以下adb devices
windows下一定要用Cygwin,不然会提示CPU架构不匹配的错误。