70

仮定

(gdb) print *this

20行の出力になりました。はい、ありますType <return> to continue, or q <return> to quitが、出力の一番下に到達した後、一番上にスクロールして戻りたいと思います。

http://sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.htmlが私の質問に答えるとは思いません。それは述べています

<PgUp>
アクティブなウィンドウを1ページ上にスクロールします。

ただし、フォーカスがコマンドウィンドウにある場合は、コマンドウィンドウPgUpをスクロールして戻るのではなく、コマンド履歴を巻き戻します。この行動に苦しむのは私だけですか?

Red Hat LinuxにSSHで接続するためにPuTTYを使用しています(これで違いが生じる場合)。

4

4 に答える 4

45

私はここで答えを見つけました:http://beej.us/guide/bggdb/

SRCウィンドウにフォーカスがある場合、矢印キーはソースコードを移動しますが、CMDウィンドウにフォーカスがある場合、矢印キーはコマンド履歴内の前のコマンドと次のコマンドを選択することに注意してください。(記録のために、SRCウィンドウを1行および1ページ移動するコマンドは、+、-、<、および>です。)

これを説明するセッションの例もあります。

(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)
于 2012-08-30T08:58:02.343 に答える
43

TUIモードでGDB出力履歴を確認する1つの方法は、ロギングを有効にすることです。

set trace-commands on
set logging on

次に、ログを別のシェルに追加します。

cd where/gdb/is/running
tail -f gdb.txt

これには、スクロールとコマンドの相互作用を分離できるという利点があるため、GDB出力の過去のセクションを表示しながらコマンドを入力できます。

CMDウィンドウではスクロールキーが機能しないため、GDBは自身の出力を効果的に消費して破棄します。TUIモードから切り替えると上にスクロールできますが、TUIモード中に発生した出力は表示されません。非TUIウィンドウには、TUIモードから切り替えた後に生成された新しい出力のみが表示されます。これまでのところ、ログとテールは私が見つけることができる唯一の解決策です。


編集:set logging onTUIモードに切り替える前に(を介して)GDBロギングをアクティブにすると、TUIに入るとロギングが停止する場合があります(これはGDBのバグです)。あなたはそれを元に戻すことができます:

set logging off
set logging on
于 2012-09-14T17:40:20.300 に答える
10

Ctrl+Pのコマンドに、Ctrl+N次のコマンドに試すことができます( Ctrl+を使用Pして前のコマンドに戻った場合:)

于 2017-05-24T12:27:30.860 に答える
9

C-x o(通常はCtrl+ X、 )を使用しOます。これを使用すると、アクティブなウィンドウを変更してから、通常の上向き下向き矢印を使用して前のコマンドを表示できます。

于 2018-05-28T04:55:56.250 に答える