Chr*_*aou 9 android-ndk gdbserver ndk-gdb
我最近加载了新的Android开发工具,SDK 20130717和NDK r9.
到目前为止,我已经拥有了以前的版本,在我的两个系统中都可以正常运行和调试Eclipse,XP和W7/64.
现在,在新工具安装和所需路径环境发生变化后,带有新工具的W7/64可以正常工作并调试我的应用程序.
当我选择"Debug As"+"Android Native Application"时,它可以正常工作.
然而XP,尽管他们在文件夹/ cygwin等方面具有确切的配置,在安装新工具和必要的路径env改变之后,它看起来无法启动ndk-dbg而且它确实在最后等待在"启动MyApp(1):( 100%)".在我选择"Debug As"+"Android Native Application"之后会发生这种情况.
关于它可能是什么原因的任何提示?或者我错过了XP和r9调试的任何已知问题?
谢谢,克里斯托斯
*编辑
试图手动启动ndk-gdb,这是我得到的,任何提示都是受欢迎的
大段引用
$ ndk-gdb --start --verbose --force
Android NDK安装路径:/ cygdrive/e/android-ndk-r9
使用默认的adb命令:/ cygdrive/e/adt-bundle-windows-x86-20130717/sdk/platform-tools/adb
发现ADB版本:Android Debug Bridge版本1.0.31
使用ADB标志:
使用JDB命令:/cygdrive/e/Android/Java/jdk1.7.0_21/bin/jdb
使用自动检测的项目路径:.
找到包名:myndkpackage
申请目标ABIs:armeabi-v7a
设备API级别:17
设备CPU ABIs:armeabi-v7a armeabi
兼容设备ABI:armeabi-v7a
使用gdb setup init:./ libs/armeabi-v7a/gdb.setup
使用工具链前缀:/cygdrive/e/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-
使用app out目录:./ obj/local/armeabi-v7a
找到debuggable标志:true
找到设备gdbserver:/ data/data/myndkpackage/lib/gdbserver
找到数据目录:'/ data/data/myndkpackage'
找到第一个可启动的活动:myndkpackage.MainActivity
启动活动:myndkpackage/myndkpackage.MainActivity
命令:adb_cmd shell am start -D -n myndkpackage/myndkpackage.MainActivity
开始:意图{cmp = myndkpackage/.MainActivity}
命令:adb_cmd shell sleep 2
发现运行PID:2787
杀死现有的调试会话
命令:adb_cmd shell kill -9 2753
成功启动了gdbserver.
设置网络重定向
命令:adb_cmd shell run-as myndkpackage lib/gdbserver + debug-socket --attach 2787
命令:adb_cmd forward tcp:5039 localfilesystem:/ data/data/myndkpackage/debug-socket
附; pid = 2787
在Unix socket socket-socket上听
命令:adb_cmd pull/system/bin/app_process obj/local/armeabi-v7a/app_process
599 KB/s(9588字节,0.015秒)
从设备/模拟器中拉出app_process.
命令:adb_cmd pull/system/bin/linker obj/local/armeabi-v7a/linker
658 KB/s(在0.093s中为63244字节)
从设备/仿真器拉出链接器.
命令:adb_cmd pull /system/lib/libc.so obj/local/armeabi-v7a/libc.so
744 KB/s(0.390s内297608字节)
从设备/模拟器中拉出libc.so.
设置JDB连接
命令:adb_cmd forward tcp:65534 jdwp:2787
java.io.IOException:handshake失败 - 连接prematurally关闭
at com.sun.tools.jdi.SocketTransportService.handshake(SocketTransportService.java:136)
at com.sun.tools.jdi.SocketTransportService.attach(SocketTransportService.java:232)
at com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:116)
at com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:90)
at com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:519)
在com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:328)
在com.sun.tools.example.debug.tty.Env.init(Env.java:63)
在com.sun.tools.example.debug.tty.TTY.main(TTY.java:1066)
致命错误:
无法连接到目标VM.
/ cygdrive/e/android-ndk-r9/ndk-gdb:line 742:4636分段错误$ GDBCLIENT -x
native_path $GDBSETUP大段引用
好的,
据我了解,这是新的 r9 版本中的一个问题,特别是在名为
android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-gdb
该可执行文件给出了分段错误。
因此,看起来发行版中的 Android 开发人员从一开始就没有正确生成该文件,他们将其上传到了 Android 主网站上。
我尝试重新下载 r9 发行版并重新安装,但同样的事情发生了,所以这不是偶然的,例如解压错误。
我尝试了旧的 r8e 相同文件,它没有给出分段错误,它工作正常。
因此,我做了一些事情来证明我所说的概念,并获取了以前的版本文件(来自 r8e)并覆盖新的 r9 文件,然后再次尝试运行失败的 ndk-dbg 和..
..有用..
现在我有了一个新的 r9 NDK,但使用了 r8e 中的一个文件,即旧的 arm-linux-androideabi-gdb.exe,一切正常!
所以我想android开发者必须重新编译
-> android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-gdb.exe
工具,这次正确。
至少我希望有人会发现这很有用,并避免我一直以来的挫败感。
克里斯托斯
| 归档时间: |
|
| 查看次数: |
3636 次 |
| 最近记录: |