当设置程序在另一个终端上运行时,如何抑制GDB中的“无法设置控制终端”警告?

当设置程序在另一个终端上运行时,如何抑制GDB中的“无法设置控制终端”警告?

我正在使用 GDB 来调试程序,并且希望将其输出定向到与运行 GDB 的终端不同的终端。这就是我一直在做的事情:

  1. 打开第二个终端,使用 检查其设备名称tty,并获得类似 的内容/dev/pts/14
  2. 在我的 GDB 会话中,我使用命令tty /dev/pts/14将输出设置到该终端。
  3. 然后我run在 GDB 中发出命令来启动程序。

此设置确实正确地将输出定向到终端 2,但问题是终端 2 上的第一行总是显示:

warning: GDB: Failed to set controlling terminal: Operation not permitted

我尝试以 root 身份运行 GDB sudo,但遇到了相同的警告。这是我的流程的简化表示:

# Terminal 2:
$ tty
/dev/pts/14

# Terminal 1:
$ gdb ./some-program
(gdb) tty /dev/pts/14
(gdb) run

谁能解释一下导致此警告的原因以及我如何解决或抑制它?设置控制终端时 GDB 尝试执行什么操作,为什么会失败?

笔记:同样的事情也发生在经典的 tty 上/dev/tty3

相关内容