使用 Ubuntu 主机和 gdb 调试 QNX 目标

Debug QNX target using Ubuntu host and gdb

这是一个绝对初学者的问题。

我有一个 Ubuntu 14.04 主机,上面安装了 gdb 7.7.1 和一个为 qnx 交叉编译的项目。我还有一个 qnx 目标,我想在上面调试我的应用程序。

互联网上的说明告诉我在 PC 上使用 gdb + gdbserver,但我没有安装 gdbserver,我认为我无法为 qnx 编译 gdb。我有一个叫做 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 时,它会尝试 运行 我的本地应用程序副本,而不是 运行瞄准目标。

无法使用 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