我已经尝试了将近一周的时间来调试 ndk 示例 hello-jni 的 c 代码,但没有运气。我曾尝试关注许多关于如何做到这一点的教程/博客文章,但同样没有运气。
例如,如果我按照本教程进行操作:http: //mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-debugging/,当我运行 ndk-时,我只能进入第 3 步- gdb 它说:“cp:无法统计`.libs/armeabi/gdb.setup':没有这样的文件或目录”
如许多教程中所述,我已注释掉 ndk-gdb 的最后一行。
这是我从 cygwin 运行 ndk-gdb 时得到的:
$ /cygdrive/d/data/klr200/construction/software/local/pc/android-ndk-r8d/ndk-gdb-eclipse --project=/cygdrive/d/data/klr200/construction/software/local/pc/ android-ndk-r8d/samples/hello-jni --verbose --force --adb=/cygdrive/d/data/klr200/construction/software/local/pc/android-sdk/platform-tools/adb.exe
Android NDK安装路径:/cygdrive/d/data/klr200/construction/software/local/pc/android-ndk-r8d
使用具体adb命令:/cygdrive/d/data/klr200/construction/software/local/pc/android -sdk/platform-tools/adb.exe
找到 ADB 版本:Android Debug Bridge 版本 1.0.31
使用 ADB 标志:
使用指定的项目
路径:/cygdrive/d/data/klr200/construction/software/local/pc/android-ndk -r8d/samples/hello-jni
找到包名:com.example.hellojni
ABIs target by application: armeabi
Device API Level: 10
Device CPU ABIs: armeabi
Compatible device ABI: armeabi
using gdb setup init: ./libs/armeabi/gdb 。设置
使用工具链前缀:/cygdrive/d/data/klr200/construction/software/local/pc/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-
使用应用程序输出目录:./obj/local/armeabi
找到可调试标志:true
找到设备 gdbserver:/data/data/com.example.hellojni/lib/gdbserver
找到数据目录:'/data/data/com.example.hellojni'
发现运行 PID: 351
Killing existing debugging session
命令: adb_cmd shell kill -9 496
[1] Killed run-as com.examp...
成功启动 gdbserver。
设置网络重定向
命令: adb_cmd shell run-as com.example.hellojni lib/gdbserver +debug-socket --attach >351
命令:adb_cmd forward tcp:5039 localfilesystem:/data/data/com.example.hellojni/debug-socket
命令:adb_cmd pull /system/bin/app_process obj/local/armeabi/app_process
附加;pid = 351
监听 Unix 套接字调试套接字
16 KB/s(0.329 秒内 5660 字节)
从设备/模拟器中拉取 app_process。
命令:adb_cmd pull /system/bin/linker obj/local/armeabi/linker
48 KB/s(0.786 秒内 39404 字节)
从设备/模拟器中拉出链接器。
命令:adb_cmd pull /system/lib/libc.so obj/local/armeabi/libc.so
77 KB/s(3.468 秒内 273868 个字节)
从设备/模拟器中提取 libc.so。
cp:无法统计`./libs/armeabi/gdb.setup':没有这样的文件或目录
我在任何地方都找不到 app_process(据我所知,这非常重要),如果我查看项目目录.../libs/armeabi,gdb.setup 文件就在那里。
我正在使用:
- 安卓 NDK r8d
- 安卓 SDK 21.1
- 带有 CDT 8.1.1 的 Eclipse Juno
- 最新的cygwin
- Windows 7 32 位