Android调试ndk-gdb

Android调试ndk-gdb,android,android-ndk,ndk-build,ndk-gdb,Android,Android Ndk,Ndk Build,Ndk Gdb,我已经为此奋斗了好几天,我已经接近了,但仍然没有运气。我正在尝试通过ndk build ndk_DEBUG=1构建一个android应用程序,它运行得很好。我可以从eclipse启动并运行它,但我想从命令行进行调试。所以我尝试了ndk gdb的不同方法,但没有成功。我尝试过“ndk gdb--start--nowait--verbose”,“ndk gdb--start--verbose”, “ndk调试”,似乎什么都不起作用。如果我去掉“no wait”标志,我会得到一个稍微不同的输出,但是会

我已经为此奋斗了好几天,我已经接近了,但仍然没有运气。我正在尝试通过ndk build ndk_DEBUG=1构建一个android应用程序,它运行得很好。我可以从eclipse启动并运行它,但我想从命令行进行调试。所以我尝试了ndk gdb的不同方法,但没有成功。我尝试过“ndk gdb--start--nowait--verbose”,“ndk gdb--start--verbose”, “ndk调试”,似乎什么都不起作用。如果我去掉“no wait”标志,我会得到一个稍微不同的输出,但是会弹出相同的错误

没有“无等待”标志:

Claudias-MacBook-Pro:Android claudia$ ndk-gdb --start --verbose
Android NDK installation path: /Applications/Intel/INDE/Framework/NDK
Using default adb command: /Applications/Intel/INDE/Framework/ADT/sdk/platform-tools/adb
ADB version found: Android Debug Bridge version 1.0.31
Using ADB flags: 
Using JDB command: /usr/bin/jdb
Using auto-detected project path: .
Found package name: com.yourcompany.neckrowfish
ABIs targetted by application: armeabi armeabi-v7a
Device API Level: 19
Device CPU ABIs: x86 armeabi-v7a
Compatible device ABI: armeabi-v7a
Using gdb setup init: ./libs/armeabi-v7a/gdb.setup
Using toolchain prefix: /Applications/Intel/INDE/Framework/NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-
Using app out directory: ./obj/local/armeabi-v7a
Found debuggable flag: true
Found data directory: '/data/data/com.yourcompany.neckrowfish'
Found device gdbserver: /data/data/com.yourcompany.neckrowfish/lib/gdbserver
Found first launchable activity: .neckrowfish
Launching activity: com.yourcompany.neckrowfish/.neckrowfish
## COMMAND: adb_cmd shell am start -D -n com.yourcompany.neckrowfish/.neckrowfish
Starting: Intent { cmp=com.yourcompany.neckrowfish/.neckrowfish }
## COMMAND: adb_cmd shell sleep 2
Found running PID: 17094
Launched gdbserver succesfully.
Setup network redirection
## COMMAND: adb_cmd forward tcp:5039 localfilesystem:/data/data/com.yourcompany.neckrowfish/debug-socket
## COMMAND: adb_cmd shell run-as com.yourcompany.neckrowfish /data/data/com.yourcompany.neckrowfish/lib/gdbserver +debug-socket --attach 17094
## COMMAND: adb_cmd pull /system/bin/app_process ./obj/local/armeabi-v7a/app_process
Cannot attach to lwp 17094: Function not implemented (38)

Exiting
2859 KB/s (12780 bytes in 0.004s)
Pulled app_process from device/emulator.
## COMMAND: adb_cmd pull /system/bin/linker ./obj/local/armeabi-v7a/linker
5510 KB/s (183465 bytes in 0.032s)
Pulled linker from device/emulator.
## COMMAND: adb_cmd pull /system/lib/libc.so ./obj/local/armeabi-v7a/libc.so
3730 KB/s (824333 bytes in 0.215s)
Pulled libc.so from device/emulator.
Setup JDB connection
## COMMAND: adb_cmd forward tcp:65534 jdwp:17094
java.io.IOException: handshake failed - connection prematurally closed
    at com.sun.tools.jdi.SocketTransportService.handshake(SocketTransportService.java:118)
    at com.sun.tools.jdi.SocketTransportService.attach(SocketTransportService.java:214)
    at com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:98)
    at com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:72)
    at com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:358)
    at com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:168)
    at com.sun.tools.example.debug.tty.Env.init(Env.java:64)
    at com.sun.tools.example.debug.tty.TTY.main(TTY.java:1010)

Fatal error:
Unable to attach to target VM.
GNU gdb (GDB) 7.3.1-gg2
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=x86_64-apple-darwin --target=arm-linux-android".
For bug reporting instructions, please see:
<http://source.android.com/source/report-bugs.html>.
./obj/local/armeabi-v7a/gdb.setup:4: Error in sourced command file:
Remote connection closed
(gdb) 
Claudias MacBook Pro:Android claudia$ndk gdb——开始——冗长
Android NDK安装路径:/Applications/Intel/INDE/Framework/NDK
使用默认adb命令:/Applications/Intel/INDE/Framework/ADT/sdk/platform tools/adb
找到ADB版本:Android调试桥版本1.0.31
使用ADB标志:
使用JDB命令:/usr/bin/JDB
使用自动检测到的项目路径:。
找到包名称:com.yourcompany.neckrowfish
应用目标ABI:armeabi armeabi-v7a
设备API级别:19
设备CPU ABIs:x86 armeabi-v7a
兼容设备ABI:armeabi-v7a
使用gdb setup init:./libs/armeabi-v7a/gdb.setup
使用工具链前缀:/Applications/Intel/INDE/Framework/NDK/toolschains/arm-linux-androideabi-4.8/prebuild/darwin-x86_64/bin/arm-linux-androideabi-
使用app out目录:./obj/local/armeabi-v7a
找到可调试标志:true
找到数据目录:'/data/data/com.yourcompany.neckrowfish'
找到设备gdbserver:/data/data/com.yourcompany.neckrowfish/lib/gdbserver
找到第一个可启动的活动:。neckrowfish
发布活动:com.yourcompany.neckrowfish/.neckrowfish
##命令:adb_cmd shell am start-D-n com.yourcompany.neckrowfish/.neckrowfish
开始:Intent{cmp=com.yourcompany.neckrowfish/.neckrowfish}
##命令:adb_cmd shell sleep 2
发现正在运行PID:17094
已成功启动gdbserver。
设置网络重定向
##命令:adb_cmd forward tcp:5039 localfilesystem:/data/data/com.yourcompany.neckrowfish/debug-socket
##命令:adb_cmd shell作为com.yourcompany.neckrowfish/data/data/com.yourcompany.neckrowfish/lib/gdbserver+debug socket运行--附加17094
##命令:adb_cmd pull/system/bin/app_process./obj/local/armeabi-v7a/app_process
无法连接到lwp 17094:未实现功能(38)
退出
2859 KB/s(0.004s中12780字节)
从设备/模拟器中拉取应用程序进程。
##命令:adb_cmd pull/system/bin/linker./obj/local/armeabi-v7a/linker
5510 KB/s(0.032s中183465字节)
从设备/仿真器中拉出链接器。
##命令:adb_cmd pull/system/lib/libc.so./obj/local/armeabi-v7a/libc.so
3730 KB/s(0.215s中的824333字节)
从设备/模拟器中提取libc.so。
设置JDB连接
##命令:adb_cmd转发tcp:65534 jdwp:17094
java.io.IOException:握手失败-连接过早关闭
位于com.sun.tools.jdi.SocketTransportService.handshake(SocketTransportService.java:118)
位于com.sun.tools.jdi.SocketTransportService.attach(SocketTransportService.java:214)
位于com.sun.tools.jdi.genericatachingconnector.attach(genericatachingconnector.java:98)
位于com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:72)
位于com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:358)
位于com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:168)
位于com.sun.tools.example.debug.tty.Env.init(Env.java:64)
位于com.sun.tools.example.debug.tty.tty.main(tty.java:1010)
致命错误:
无法连接到目标VM。
GNU gdb(gdb)7.3.1-gg2
版权所有(C)2011免费软件基金会。
许可证GPLv3+:GNU GPL版本3或更高版本
这是自由软件:您可以自由更改和重新发布它。
在法律允许的范围内,不存在任何担保。键入“显示复制”
和“显示保修”了解详细信息。
此GDB配置为“-host=x86_64-apple-darwin--target=arm-linux-android”。
有关错误报告说明,请参阅:
.
./obj/local/armeabi-v7a/gdb.设置:4:源命令文件中的错误:
远程连接已关闭
(gdb)
这会在我的android设备上导致“等待调试器”通知,因此,使用我得到的标志:

Claudias-MacBook-Pro:Android claudia$ ndk-gdb --start --nowait --verbose
Android NDK installation path: /Applications/Intel/INDE/Framework/NDK
Using default adb command: /Applications/Intel/INDE/Framework/ADT/sdk/platform-tools/adb
ADB version found: Android Debug Bridge version 1.0.31
Using ADB flags: 
Using JDB command: /usr/bin/jdb
Using auto-detected project path: .
Found package name: com.yourcompany.neckrowfish
ABIs targetted by application: armeabi armeabi-v7a
Device API Level: 19
Device CPU ABIs: x86 armeabi-v7a
Compatible device ABI: armeabi-v7a
Using gdb setup init: ./libs/armeabi-v7a/gdb.setup
Using toolchain prefix: /Applications/Intel/INDE/Framework/NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-
Using app out directory: ./obj/local/armeabi-v7a
Found debuggable flag: true
Found data directory: '/data/data/com.yourcompany.neckrowfish'
Found device gdbserver: /data/data/com.yourcompany.neckrowfish/lib/gdbserver
Found first launchable activity: .neckrowfish
Launching activity: com.yourcompany.neckrowfish/.neckrowfish
## COMMAND: adb_cmd shell am start -n com.yourcompany.neckrowfish/.neckrowfish
Starting: Intent { cmp=com.yourcompany.neckrowfish/.neckrowfish }
Warning: Activity not started, its current task has been brought to the front
## COMMAND: adb_cmd shell sleep 2
Found running PID: 17094
Launched gdbserver succesfully.
Setup network redirection
## COMMAND: adb_cmd forward tcp:5039 localfilesystem:/data/data/com.yourcompany.neckrowfish/debug-socket
## COMMAND: adb_cmd shell run-as com.yourcompany.neckrowfish /data/data/com.yourcompany.neckrowfish/lib/gdbserver +debug-socket --attach 17094
## COMMAND: adb_cmd pull /system/bin/app_process ./obj/local/armeabi-v7a/app_process
Cannot attach to lwp 17094: Function not implemented (38)

Exiting
2539 KB/s (12780 bytes in 0.004s)
Pulled app_process from device/emulator.
## COMMAND: adb_cmd pull /system/bin/linker ./obj/local/armeabi-v7a/linker
4498 KB/s (183465 bytes in 0.039s)
Pulled linker from device/emulator.
## COMMAND: adb_cmd pull /system/lib/libc.so ./obj/local/armeabi-v7a/libc.so
2676 KB/s (824333 bytes in 0.300s)
Pulled libc.so from device/emulator.
GNU gdb (GDB) 7.3.1-gg2
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=x86_64-apple-darwin --target=arm-linux-android".
For bug reporting instructions, please see:
<http://source.android.com/source/report-bugs.html>.
./obj/local/armeabi-v7a/gdb.setup:4: Error in sourced command file:
Remote connection closed
(gdb) 
Claudias MacBook Pro:Android claudia$ndk gdb--start--nowait--verbose
Android NDK安装路径:/Applications/Intel/INDE/Framework/NDK
使用默认adb命令:/Applications/Intel/INDE/Framework/ADT/sdk/platform tools/adb
找到ADB版本:Android调试桥版本1.0.31
使用ADB标志:
使用JDB命令:/usr/bin/JDB
使用自动检测到的项目路径:。
找到包名称:com.yourcompany.neckrowfish
应用目标ABI:armeabi armeabi-v7a
设备API级别:19
设备CPU ABIs:x86 armeabi-v7a
兼容设备ABI:armeabi-v7a
使用gdb setup init:./libs/armeabi-v7a/gdb.setup
使用工具链前缀:/Applications/Intel/INDE/Framework/NDK/toolschains/arm-linux-androideabi-4.8/prebuild/darwin-x86_64/bin/arm-linux-androideabi-
使用app out目录:./obj/local/armeabi-v7a
找到可调试标志:true
找到数据目录:'/data/data/com.yourcompany.neckrowfish'
找到设备gdbserver:/data/data/com.yourcompany.neckrowfish/lib/gdbserver
找到第一个可启动的活动:。neckrowfish
发布活动:com.yourcompany.neckrowfish/.neckrowfish
##命令:adb_cmd shell am start-n com.yourcompany.neckrowfish/.neckrowfish
开始:Intent{cmp=com.yourcompany.neckrowfish/.neckrowfish}
警告:活动未启动,其当前任务已被置于最前面
##命令:adb_cmd shell sleep 2
发现正在运行PID:17094
已成功启动gdbserver。
设置网络重定向
##命令:adb_cmd forward tcp:5039 localfilesystem:/data/data/com.yourcompany.neckrowfish/debug-socket
##命令:adb_cmd shell作为com.yourcompany.neckrowfish/data/data/com.yourcompany.neckrowfish/lib/gdbserver+debug socket运行--附加17094
##命令:adb_cmd pull/system/bin/app_process./obj/local/armeabi-v7a/app_process
无法连接到lwp 17094:
git clone https://android.googlesource.com/platform/ndk
ndk-gdb --start --verbose --force --nowait