【发布时间】:2021-10-07 02:57:11
【问题描述】:
我刚想起床,它说:
Cannot enable the TUI when output is not a terminal
我觉得这很奇怪,因为我以为我之前就搞定了。原来它在我使用 cmd 时有效,但在使用 mintty.exe 时不起作用。 bash shell 说 TERM=xterm。我还尝试了其他一些 vt 终端,但没有成功。所以我认为 gdb 不尊重 TERM 变量。
有人知道吗?
【问题讨论】:
我刚想起床,它说:
Cannot enable the TUI when output is not a terminal
我觉得这很奇怪,因为我以为我之前就搞定了。原来它在我使用 cmd 时有效,但在使用 mintty.exe 时不起作用。 bash shell 说 TERM=xterm。我还尝试了其他一些 vt 终端,但没有成功。所以我认为 gdb 不尊重 TERM 变量。
有人知道吗?
【问题讨论】:
source code for GDB(链接源代码的第 380 行)使用stderr.isatty() 检查输出文件(在本例中为 MinTTY)是否为终端。但是,this check fails using MSYS/MinGW 因为根据 MinTTY 的开发者的说法,
引自 mingw.org:“MinGW ... 是用于原生 Microsoft Windows 应用程序的极简开发环境。” 原生 Windows 意味着没有 tty。
查看this patch 建议一种解决方法可能是取消设置$TERM 变量以启用本机Windows 控制台驱动程序(而不是使用Unix tty)。所以试试unset TERM 看看是否能解决问题。
【讨论】: