警告:GDB:无法设置控制终端:无效参数

12

我在Ubuntu上使用Qt Creator开发C。每当我使用调试器运行时,都会收到“warning: GDB: Failed to set controlling terminal: Invalid argument”消息。即使是一个"hello world"程序也会出现这种情况。我该怎么解决?


嗨,Joel,你找到这个问题的解决方案了吗?复制libQtCore.so.4文件对我不起作用。 - Chenna V
不,我只是忽略了警告,因为调试工作正常。 - JoelFan
2个回答

9
这是Qt Creator中的一个bug,它没有正确地调用GDB(无论是在伪终端内还是使用命令行参数告诉它不要期望在伪终端内运行)。同时这也是GDB的一个bug,它本应自己判断出它并未在伪终端内运行并相应地做出反应。我猜测GDB的维护者会认为这是Qt Creator的错,反之亦然,唉。
这里有一个声称的解决方法:http://www.qtforum.org/article/31905/debugging-qt-application-on-linux.html,但对我来说听起来有点靠不住。

除了警告信息之外,这个 bug 会有什么后果?有没有可能检查一下它是否在源代码控制中已经修复(在任何一个项目中),这样我就可以构建它了? - JoelFan
我不知道!我的诊断完全基于你所写的和我通过谷歌搜索“qt creator gdb controlling terminal”找到的内容。有些人似乎认为它会使调试器无法工作,但如果调试器对你起作用,我认为它应该是无害的。 - zwol
嗯,我刚开始使用Qt Creator,但在我的一个简单的测试程序中使用了一个简单的for循环后,调试器似乎是工作正常的。 - JoelFan
这没什么关系。我们经常遇到这种情况,而且调试工作一切正常。这只是一个小烦恼,可能解释了为什么它自版本1.3以来一直没有修复。 - andref
1
嗯,我能修复它并提交一个补丁吗? - JoelFan

0
无论这个警告是否是一个 bug,它都作为一个提示信息告诉你有一个选项可以让 QtCreator 在终端中运行你的程序,这对于调试输出可能会很有用。请参见Setup GDB with QtCreator以启用此选项。
如果你不想打开终端,那么就忽略这个警告即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接