这是绝对初学者的问题。
我有一个Ubuntu 14.04主机,其上安装了gdb 7.7.1,并为qnx交叉编译了一个项目。我也有一个qnx目标,我想调试我的应用程序。
互联网上的说明告诉我在PC + gdb
上使用gdbserver
,但我没有安装gdbserver,我也不认为我可以编译gdb QNX。我有一个叫pdebug
的东西。 qnx的说明告诉我gdb必须有target qnx
命令,显然它没有。
这就是我所做的:
# Assuming that 255.255.255.255 is the target ip and 1234 is the port
# On target
pdebug 1234
On host
gdb
gdb> target remote 255.255.255.255:1234
然后我又收到了一些警告和gdb>
,这是正常的。
我设法在我的主机和目标之间安装了一个连接,但当我在gdb中点击run
时,它会尝试运行我的应用程序的本地副本,而不是在目标上运行它。
答案 0 :(得分:3)
用Ubuntu的gdb无法调试qnx应用程序。
你必须使用为此目的而构建的qnx' gdb
,它能够运行target qnx
以及您需要的许多其他命令。您必须在主机上使用qnx' gdb
并在目标上使用pdebug
并运行您运行的相同命令:
# on target
pdebug 1234
# on host
ntoarm-gdb
(gdb) file MyQnxApp
(gdb) target qnx 255.255.255.255:1234
(gdb) upload MyQnxApp /mnt/myWorkingDir/MyQnxApp
(gdb) b main
(gdb) r
然后您将看到有关您的连接的信息:
Remote debugging using 255.255.255.255:1234
Remote target is <your_endianness>
详见instructions。