16

GDB で、 のような長い出力を伴うコマンドを発行すると、出力が一度に 1 ページ表示され、下に移動して終了するinfo variablesのを押すことに気付きました。enterq

デフォルトのページャーを などの別のものに置き換えてless、上下に移動したり、終了したり、検索したりできるようにすることはできますか?

4

6 に答える 6

9

デフォルトのページャーを別のものに置き換えることは可能ですか?

いいえ: GDB は外部プログラムを呼び出して出力を表示するのではなく、出力を一時停止するだけです (また、一時停止しないようにすることもできますset height 0)。

内で実行することに加えて、またはemacsを使用することもできます(それらを学習すると、通常、他の多くの状況で役立ちます)、または GDB に出力をログに記録するように依頼し ( )、必要に応じて検索することもできます。screentmuxset logging ongdb.txt$PAGER

于 2013-04-21T15:26:35.087 に答える
4

次のユーザー定義コマンドを ~/.gdbinit に入れることができます。

% cat ~/.gdbinit
python import os
define less1
    python os.popen("less","w").write(gdb.execute("$arg0",to_string=True))
end

define less2
    python os.popen("less","w").write(gdb.execute("$arg0 $arg1",to_string=True))
end
...
% gdb
(gdb) less2 info var
...
(gdb) less1 disass
...
于 2015-08-06T04:27:01.377 に答える
4

gdb内部で実行するemacsと、emacs のページング コマンドを使用できるはずです。

  1. emacs を実行する
  2. type M-x gdbreturn (M は meta - alt キーまたは Mac のオプションを表します)
  3. Emacs メッセージ バーに次のメッセージが表示されます。 Run gdb (like this): gdb

詳細については、http: //tedlab.mit.edu/~dr/gdbintro.htmlをご覧ください。

HTH

于 2013-04-21T14:38:36.770 に答える