BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #24269同步于 2013/1/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

[问题]菜鸟求助,关于Java+Cpp调试,Android环境

ifay
2013/1/22镜像同步5 回复
需要在Android应用中调用Cpp文件处理一些后台数据。 在Eclipse+CDT+NDT+JNI+cygWin下进行调试的时候,发现无法进入Cpp代码部分进行调试。 cygwin下的用ndk-gdb命令查看如下 $ ndk-gdb --verbose --force Android NDK installation path: /cygdrive/d/AndroidDev/android-ndk-r8d Using default adb command: /cygdrive/d/AndroidDev/adt-bundle-windows-x86/sdk/platform-tools/adb ADB version found: Android Debug Bridge version 1.0.31 Using ADB flags: Using auto-detected project path: . Found package name: com.example.helloworld ABIs targetted by application: armeabi Device API Level: 15 Device CPU ABIs: armeabi-v7a armeabi Compatible device ABI: armeabi Using gdb setup init: ./libs/armeabi/gdb.setup Using toolchain prefix: /cygdrive/d/AndroidDev/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi- Using app out directory: ./obj/local/armeabi Found debuggable flag: true Found device gdbserver: /data/data/com.example.helloworld/lib/gdbserver Found data directory: '/data/data/com.example.helloworld' Found running PID: 28907 Killing existing debugging session ## COMMAND: adb_cmd shell kill -9 29021 /system/bin/sh: kill: 29021: Operation not permitted Launched gdbserver succesfully. Setup network redirection ## COMMAND: adb_cmd forward tcp:5039 localfilesystem:/data/data/com.example.helloworld/debug-socket ## COMMAND: adb_cmd shell run-as com.example.helloworld lib/gdbserver +debug-socket --attach 28907 Cannot attach to lwp 28907: Operation not permitted (1) Exiting ## COMMAND: adb_cmd pull /system/bin/app_process obj/local/armeabi/app_process 3205 KB/s (9848 bytes in 0.003s) Pulled app_process from device/emulator. ## COMMAND: adb_cmd pull /system/bin/linker obj/local/armeabi/linker 2416 KB/s (39592 bytes in 0.016s) Pulled linker from device/emulator. ## COMMAND: adb_cmd pull /system/lib/libc.so obj/local/armeabi/libc.so 6265 KB/s (282304 bytes in 0.044s) Pulled libc.so from device/emulator. eclipse中debug后会出现如图所示的样子 eclipse中的console窗口会出现如下信息: D:\AndroidDev\workspace\HelloWorld\obj\local\armeabi\gdb2.setup:3: Error in sourced command file: obj/local/armeabi/app_process: No such file or directory. Reading symbols from D:\AndroidDev\workspace\HelloWorld\obj\local\armeabi\app_process...done. WARNING: no debugging symbols found in D:\AndroidDev\workspace\HelloWorld\obj\local\armeabi\app_process. Either the binary was compiled without debugging information or the debugging information was removed (e.g., with strip or strip -g). Debugger capabilities will be very limited. For further information: http://wiki/Main/GdbFaq#No_debugging_symbols_found 89-gdb-set confirm off 89^done 90-gdb-set width 0 (gdb) 90^done (gdb) 91-gdb-set height 0 91^done (gdb) 92-interpreter-exec console echo 92^done (gdb) 93-gdb-show prompt 93^done,value="(gdb) " (gdb) 94-gdb-set auto-solib-add on 94^done 95-gdb-set stop-on-solib-events 0 (gdb) 95^done (gdb) 96-gdb-set stop-on-solib-events 1 96^done (gdb) 97-target-select remote localhost:5039 97^error,msg="Remote communication error. Target disconnected.: No error." (gdb) 98-gdb-exit 98^exit
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
ifay机器人#1 · 2013/1/23
跪求各位大拿帮忙看看
tonyjansan机器人#2 · 2013/1/23
感觉似乎和你系统的权限有些关系:看这几句 ## COMMAND: adb_cmd shell kill -9 29021 /system/bin/sh: kill: 29021: Operation not permitted ## COMMAND: adb_cmd forward tcp:5039 localfilesystem:/data/data/com.example.helloworld/debug-socket ## COMMAND: adb_cmd shell run-as com.example.helloworld lib/gdbserver +debug-socket --attach 28907 Cannot attach to lwp 28907: Operation not permitted (1) 这几个地方都出现了操作权限被拒绝的问题~ ------------------------------------------------------------------------------------------------------------------------------------------- 另外你还应查看下pull出来的app_process、linker和libc.so是否都放到了指定路径,并且所在用户组是否有执行权限~如果没有的话你还需要chmod一下~ 后边的这一行console中报出的error就应该是这个问题造成的: D:\AndroidDev\workspace\HelloWorld\obj\local\armeabi\gdb2.setup:3: Error in sourced command file: obj/local/armeabi/app_process: No such file or directory. Reading symbols from D:\AndroidDev\workspace\HelloWorld\obj\local\armeabi\app_process...done. 有可能是相对路径拼接出错了~也有可能就是没有执行权限造成的
ifay机器人#3 · 2013/1/23
终于有大牛关注了,泪流满面…… 可能有路径的问题,被正反斜杠搞得头大,不管怎么试,都说找不到文件。 配置调试环境配置两天了,想试试别的方式。 请问你一般如何调试Android程序中的native代码呢?有没有比较简单的方法? 【 在 tonyjansan 的大作中提到: 】 : 感觉似乎和你系统的权限有些关系:看这几句 : ## COMMAND: adb_cmd shell kill -9 29021 : /system/bin/sh: kill: 29021: Operation not permitted : ...................
buptxrc机器人#4 · 2013/1/23
前段时间一直是在里面各种什么log什么打印出来的= =..感觉特别蛋疼= = 【 在 ifay 的大作中提到: 】 : 终于有大牛关注了,泪流满面…… : 可能有路径的问题,被正反斜杠搞得头大,不管怎么试,都说找不到文件。 : 配置调试环境配置两天了,想试试别的方式。 : ...................
ifay机器人#5 · 2013/1/24
我最终也用log了……感觉比配置gdb爽多了…… 【 在 buptxrc 的大作中提到: 】 : 前段时间一直是在里面各种什么log什么打印出来的= =..感觉特别蛋疼= =