使用GDB远程调试器时,linux系统调用永远不会返回
我正在尝试远程调试(使用gdbserver)在iMX6上运行的应用程序。我的设置是Ubuntu 16.04 LTS,我使用的是QtCreator 3.5.1(基于5.5.1 GCC 5.2.1) 首先要注意的是,如果我删除系统调用,iMX6应用程序层的QT GDB远程调试器(单步)将正常工作。“系统(…)”或“读取(…)”。但是,任何尝试执行系统调用的操作都会挂起进程。系统调用永远不会返回 第二点需要注意的是,当直接从iMX6执行时(包括系统调用),应用程序运行良好。我甚至可以使用GDB(命令行)调试应用程序。没问题 在QT Creator中,我在QT Creator启动应用程序之前运行的其他调试器命令中添加了GDB命令“set remote system call allowed 1”。没有成功,仍然悬而未决。所有系统调用将挂起,并且永远不会返回使用GDB远程调试器时,linux系统调用永远不会返回,linux,gdb,gdbserver,imx6,Linux,Gdb,Gdbserver,Imx6,我正在尝试远程调试(使用gdbserver)在iMX6上运行的应用程序。我的设置是Ubuntu 16.04 LTS,我使用的是QtCreator 3.5.1(基于5.5.1 GCC 5.2.1) 首先要注意的是,如果我删除系统调用,iMX6应用程序层的QT GDB远程调试器(单步)将正常工作。“系统(…)”或“读取(…)”。但是,任何尝试执行系统调用的操作都会挂起进程。系统调用永远不会返回 第二点需要注意的是,当直接从iMX6执行时(包括系统调用),应用程序运行良好。我甚至可以使用GDB(命令行
有人知道这是怎么回事吗?为什么我的系统调用没有返回。这篇文章让我找到了答案。 为了快速参考,我检查了QT创建的日志。选择窗口->查看->调试器日志 在我的例子中,与另一篇文章一样,detach on fork被设置为off 解决办法是 在QTCreator中添加“将fork上的分离设置为打开”作为调试器选项(工具->选项…,调试器:GDB选项卡:其他启动命令)的一部分