【问题标题】:TUI working on cmd line but not in minttyTUI 在 cmd 行上工作,但不在 mintty
【发布时间】: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 变量。

有人知道吗?

【问题讨论】:

    标签: gdb msys2 tui


    【解决方案1】:

    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 看看是否能解决问题。

    【讨论】:

    • 它对我不起作用。你在你的机器上试过了吗?
    • 嗯,看看github.com/mintty/mintty/issues/380#issuecomment-140731216,问题可能是windows-native应用程序(如msys编译的gdb)根本无法与POSIX ttys交互。在这种情况下,我很确定唯一的解决方案是使用与 POSIX 兼容的 gdb(我认为 Cygwin GDB 可以工作),或者使用支持 windows-native 命令行的终端(Windows 终端?)无论如何,如果你知道,请告诉我有任何运气,我也会尝试运行一些测试,如果我发现任何新的东西,我会更新我的答案
    • 我手头没有 Windows 机器。星期一之前无法检查...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 2021-08-27
    相关资源
    最近更新 更多