在Android上使用GDB调试本机应用程序 我有一个本地的C++应用程序,应该运行在Android设备上。应用程序在启动时崩溃,最有可能是在从链接库调用函数时。我正试图用gdb调试它,但我不能成功

在Android上使用GDB调试本机应用程序 我有一个本地的C++应用程序,应该运行在Android设备上。应用程序在启动时崩溃,最有可能是在从链接库调用函数时。我正试图用gdb调试它,但我不能成功,android,debugging,gdb,Android,Debugging,Gdb,我正在Android设备上任意选择端口(2000)启动gdbserver: 现在,我正试图用Android NDK中提供的gdb在我的主机系统(Windows 7)上连接到这个进程 C:\> gdb (gdb) attach 3420 Can't attach to process. (gdb) target remote :2000 :2000: The system tried to join a drive to a directory on a joined drive. 有什么

我正在Android设备上任意选择端口(2000)启动gdbserver:

现在,我正试图用Android NDK中提供的gdb在我的主机系统(Windows 7)上连接到这个进程

C:\> gdb
(gdb) attach 3420
Can't attach to process.
(gdb) target remote :2000
:2000: The system tried to join a drive to a directory on a joined drive.
有什么问题

编辑: 在运行gdb之前,我使用adb转发了端口2000:

adb forward tcp:2000 tcp:2000
这至少帮助我建立了一些沟通,但是:

(gdb) target remote :2000
Remote debugging using :2000
warning: Architecture rejected target-supplied description
Remote 'g' packet reply is too long: 00000000000000000000000000000... 
在设备端:

Listening on port 2000
Remote debugging from host 127.0.0.1
readchar: Got EOF
Remote side has terminated connection.  GDBserver will reopen the connection.
Listening on port 2000

您很可能正在使用不同的gdb体系结构/版本。当您启动gdb时,它会显示一行,如(我正在显示我的gdb显示的内容):

此GDB配置为“-host=x86_64-linux-gnu” --目标=arm Linux android“

检查这是否与您手机的架构相匹配。
下载正确的GDB版本可能会解决您的问题

Listening on port 2000
Remote debugging from host 127.0.0.1
readchar: Got EOF
Remote side has terminated connection.  GDBserver will reopen the connection.
Listening on port 2000