ubuntu代码块:警告:GDB:设置控制终端失败:不允许操作

whhtz7ly  于 2023-04-11  发布在  其他
关注(0)|答案(1)|浏览(241)

ubuntu版本:12.04
代码:块10.04
调试程序时,IDE输出
“警告:广发银行:设置控制终端失败:不允许操作”

wfauudbj

wfauudbj1#

我没有解决方案,但我可以指出错误是如何产生的。
仔细查看gdb源代码,警告输出是作为ioctl调用的结果生成的,特别是设置控制终端(TIOSCCTY). Man ioctl_tty告诉我们,如果终端是不同会话组的控制终端,则此调用将失败,除非设置了CAP_SYS_ADMIN且参数为1。在这种情况下,参数为0,因此是否设置CAP_SYS_ADMIN无关紧要。
以下是基于我对控制终端有限的理解,所以可能完全错误。如果是这样,请纠正我。
IDE正在生成一个终端进程,该进程将自动创建一个会话组。(这通常通过将-x command(或类似的)传递给终端创建来实现)。(cin,cout和cerr),然后尝试将派生的终端设置为控制终端。这会失败,因为该终端已经有一个会话组。有关详细信息,请参阅gdb源代码的文件inflow.c函数new_tty
我想强调的是,我可能是绝对错误的,我真的希望有人纠正我,如果是这样的话,我可以学习。

相关问题