我有一个本地的C++应用程序,它应该在Android设备上运行。应用程序在启动时崩溃,很可能是在调用链接库中的函数时发生的。我正在尝试使用gdb进行调试,但我无法成功。
我在Android设备上的某个任意选定的端口(2000)上启动了gdbserver:
shell@msm8996: gdbserver :2000 my_app
Process my_app created; pid = 3420
Listening on port 2000
现在我正在尝试使用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