假设
(gdb) print *this
产生了20行输出。是的,会有Type <return> to continue, or q <return> to quit
,但我想在输出到底部后回滚到顶部。
我认为http://sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.html不回答我的问题。它声明
&LT; PgUp键&GT;
将活动窗口向上滚动一页。
但是当焦点在命令窗口上时, PgUp 会重新命令命令历史记录,而不是在命令窗口中向后滚动。只有我这种行为会受到影响吗?
我正在使用PuTTY来连接Red Hat Linux(如果这有任何区别的话)。
答案 0 :(得分:40)
我在这里找到了答案:http://beej.us/guide/bggdb/
请注意,当SRC窗口具有焦点时,箭头键将移动源代码,但是当CMD窗口具有焦点时,箭头键将选择命令历史记录中的上一个和下一个命令。 (对于记录,移动SRC窗口单行和单页的命令是+, - ,&lt;和&gt ;.)
还有一个示例会话说明了这一点:
(gdb) info win
SRC (36 lines) <has focus>
CMD (18 lines)
(gdb) fs next
Focus set to CMD window.
(gdb) info win
SRC (36 lines)
CMD (18 lines) <has focus>
(gdb) fs SRC
Focus set to SRC window.
(gdb)
答案 1 :(得分:30)
在TUI模式下查看GDB输出历史记录的一种方法是启用日志记录:
set trace-commands on
set logging on
然后在另一个shell中尾随日志:
cd where/gdb/is/running
tail -f gdb.txt
这具有将滚动与命令交互分开的优点,因此您可以在查看GDB输出的过去部分时键入命令。
没有滚动键在我的CMD窗口中工作,因此GDB会有效地消耗和销毁自己的输出。切换出TUI模式允许我向上滚动,但在TUI模式下发生的输出不存在 - 非TUI窗口仅显示切换出TUI模式后生成的新输出。到目前为止,log和tail是我能找到的唯一解决方案。
编辑:如果在切换到TUI模式之前激活GDB日志记录(通过set logging on
),您可能会发现在进入TUI时停止记录(这是GDB中的错误)。您可以重新打开它:
set logging off
set logging on
答案 2 :(得分:10)
您可以尝试 Ctrl + P 上一页命令, Ctrl + N 用于 next 命令(当您使用 Ctrl + P 返回上一个命令时:)
答案 3 :(得分:3)
使用C-x o
(通常 Ctrl + X , O )。使用此功能,您可以更改活动窗口,然后使用常规向上箭头查看以前的命令。