cgdb 是 gdb 的改进版本,它使用 curses 绘制彩色文本并显示当前执行的行。gdb 可以工作,但是每次程序打印出文本时,gdb 都会移动,您必须按 control-L 来刷新。
我有很多学生在 Windows 下使用 cgdb,但出于某种奇怪的原因,我无法在 4 台独立的 Ubuntu 机器上运行它。因此,Ubuntu 20.04LTS 的默认配置似乎不起作用。以下是终端锁定前发生的情况的图片:
CGDB: a curses debugger
version 0.6.7
type q<Enter> to exit
type help<Enter> for GDB help
type <ESC>:help<Enter> for CGDB help
*qqqqqqqj[39m(B(B[m[8;40H(0[0;1;7m[36m[39m(B(B[m[16;80H[H[2J(0[0;1;7m[36ml
qqqqqqqqqqqk[39m(B(B[m[2;1H(0[0;1;7m[36mx[39m(B(B[m[80G(0[0;1;7m[3
6mx[39m(B(B[m[3;1H(0[0;1;7m[36mx[39m(B(B[m[80G(0[0;1;7m[36mx
[39m(B(B[m[4;1H(0[0;1;7m[36mx[39m(B(B[m[80G(0[0;1;7m[36mx[39m(B(B
[m[5;1H(0[0;1;7m[36mx[39m(B(B[m[80G(0[0;1;7m[36mx[39m(B(B[m[6;1H(0[0;1;7m
[36mx[39m(B(B[m[80G(0[0;1;7m[36mx[39m(B(B[m[7;1H(0[0
;1;7m[36mx[39m(B(B[m[80G(0[0;1;7m[36mx[39m(B(B[m[8;1H(0[0;1;7m
[36mx[39m(B(B[m[8;17H(0[0;1;7m[36m[39m(B(B[m[ No Source Available ]
[80G(0[0;1;7m[36mx[39m(B(B[m[9;1H(0[0;1;7m[36mx[39m(B(B[m[80G(0[0;1;7m
[36mx[39m(B(B[m[10;1H(0[0;1;7m[36mx[39m(B(B[m[80G(0
--Type <RET> for more, q to quit, c to continue without paging--
因此,这在 Windows 中使用 msys2 shell 可以正常工作,而运行 arch linux 的学生也没有问题。我认为默认终端是问题所在,因此我安装了 alacritty,结果也出现了这种情况。
TERM 设置为 xterm-256color,这可能是问题所在吗?如果是这样,我该将其设置为多少?