我正在尝试远程调试(使用gdbserver)在iMX6上运行的应用程序。我的安装是Ubuntu 16.04 LTS,我使用的是QT Creator 3.5.1 (基于5.5.1,GCC 5.2.1)。
首先要注意的是,如果删除系统调用,iMX6应用程序层的QT远程调试器(单步执行)就可以正常工作。“系统(...)”或者"read(...)“。然而,任何执行系统调用的尝试都会挂起进程。系统调用永远不会返回。
需要注意的第二件事是,当应用程序直接从iMX6执行(包括系统调用)时,它运行得很好。我甚至可以使用GDB (命令行)来调试应用程序。这里没有问题。
在QT Creator中,我将添加GDB命令"set remote system-call-allowed 1“添加到QT creator在启动应用程序之前运行的其他调试器命令中。没有成功,仍然悬而未决。所有系统调用都挂起,永远不会返回。
有人知道这是怎么回事吗?为什么我的系统调用没有返回。
发布于 2018-01-31 01:37:00
这篇文章让我找到了答案。QT: Remote debugging to ARM using QT Creator hangs, command line GDB runs fine
为了快速参考,我检查了QT创建的日志。选择Windows->View->Debugger log
在我的例子中,和另一篇文章一样,detach on-fork被设置为off。
解决方案是
在调试器选项(Tools->Options...,Debugger: GDB tab: Additional启动命令)中添加QTCreator中的'set detach-on-fork on‘作为调试器选项的一部分。
https://stackoverflow.com/questions/48526758
复制相似问题