web-dev-qa-db-ja.com

TUIモードでGDBのコマンドウィンドウをスクロールバックするにはどうすればよいですか?

仮定

(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 を使用しています(これにより違いが生じる場合)。

43
nodakai

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モードから切り替えた後に生成された新しい出力のみが表示されます。これまでのところ、ログとテールが唯一の解決策です。


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

set logging off
set logging on
32
Byron Hawkins

私はここで答えを見つけました: 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)
45
Lupus

あなたが試すことができます Ctrl + P previousコマンドおよび Ctrl + N nextコマンド(使用した場合) Ctrl + P 前のコマンドに戻るには:)

11
Rohan Ghige

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

5
EmptyData