用gdb tui模式调试无法从标准输入?

下面是一段带标准输入的代码:

#include <stdio.h>

int main(void)
{
    char buf[255];  
    while(1)
    {
        /*if(fgets(buf, 255, stdin) == NULL)
        {
            break;
        }*/
        fputs(buf, stdout);
    }
}

我在gdb tui调试单步到fgets那一行代码时候,gdb就像卡死了一样,按字母回车什么的都不起作用,只有按CTRL+C能退出本次调试。但是,如果用gdb普通的模式,是可以输入的,请教一下各位大大这是什么原因?

阅读 8k
2 个回答

这个问题我也遇到过,不光是tui模式,在cgdb中也是的,scanf函数也会出现这个问题

新手上路,请多包涵

可以通过gdb 进入调试,然后输入layout 来打开调试及显示代码分页面,这样可以执行输入操作并能继续向下执行,不过提示输入框有可能和操作记录混在一起。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进