首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GDB远程调试器时,linux系统调用从不返回

使用GDB远程调试器时,linux系统调用从不返回
EN

Stack Overflow用户
提问于 2018-01-31 01:00:15
回答 1查看 437关注 0票数 3

我正在尝试远程调试(使用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在启动应用程序之前运行的其他调试器命令中。没有成功,仍然悬而未决。所有系统调用都挂起,永远不会返回。

有人知道这是怎么回事吗?为什么我的系统调用没有返回。

EN

回答 1

Stack Overflow用户

发布于 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‘作为调试器选项的一部分。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48526758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档