如果我使用源窗口调试文件gdb -tui
总是会变得一团糟。所以每次我点击enter我都必须立即输入ctrl+L来摆脱这个问题,这就是gdb
刷新窗口的方式。我正在使用 gnu 屏幕处理 tty。
是否有可能在 tui 模式下自动刷新 gdb?
如果 gdb 没有这种能力,Python 可能是一个解决方案,因为 gdb 能够获取 Python 文件,但我不了解 Python。
这个 Python 片段在 Bash 中运行良好,但在 gdb 中运行良好:
import sys
r = "\033[2J" # here I try to emulate [ctrl-L]
t = ""
while 1:
i = sys.stdin.read(1)
t = t +i
if i == '\n':
print(r)
当然,我接受 gdb 支持的所有其他语言。
感谢您的每一次帮助。
顺便说一句,这是一个截屏视频https://youtu.be/DqiH6Jym1JY,它显示了我的问题。
这是我用于在 gdb 中演示的文件,如上面显示的链接 mess_up.c
#include <stdio.h>
int main(void){
//int n = 120;
int n;
n = 120;
char stuff[n+2];
printf( "Max: %d\n", n );
printf( "Sizeof int: %d\n", sizeof(int) );
printf( "Sizeof char: %d\n", sizeof(char) );
printf( "Sizeof n: %d\n", sizeof n );
printf( "Sizeof stuff: %d\n", sizeof stuff );
fgets ( stuff , n , stdin );
printf( "The stuff:\n%s\n", stuff );
printf( "Sizeof stuff after input = %d\n", sizeof stuff );
return 0;
}
我显示的实际 ncurses 版本tic -V
是ncurses 5.9.20140118