gdbでプログラムをデバッグしていたところ、コマンドを実行するだけでなく、コードを表示および参照できる分割ビューという、これまでに見たことも聞いたこともない新機能を見つけました。
これは何ですか?私は何をしましたか、より具体的には、この分割画面モードを再び取得するにはどうすればよいですか?このモードの名前はありますか、それとも使用方法についてどこかで読むことができますか?
gdbでプログラムをデバッグしていたところ、コマンドを実行するだけでなく、コードを表示および参照できる分割ビューという、これまでに見たことも聞いたこともない新機能を見つけました。
これは何ですか?私は何をしましたか、より具体的には、この分割画面モードを再び取得するにはどうすればよいですか?このモードの名前はありますか、それとも使用方法についてどこかで読むことができますか?
これはTUI(冗談ではありません)と呼ばれます。たとえば、gdbtui
またはで開始しgdb -tui
ます...
CiroSantilliによるこの回答も参照してください。私の知る限り、2012年には利用できませんでしたが、一見の価値があります。
ctrl+xとctrl+を押すと、動的にトリガーできますa。
それには2つのバリエーションがあります。
CTRL
X
一緒に 押してから1
「CTRL」「X」を同時に押してから「2」を押します
http://www.cs.fsu.edu/~baker/ada/gnat/html/gdb_23.html
コードとアセンブリを含むビューのスクリーンショット。
GDBダッシュボード
https://github.com/cyrus-and/gdb-dashboard
GDBダッシュボードは公式のGDBPythonAPIを使用し、ネイティブコマンドnext
のように、GDBが停止したときに必要な情報を出力します。display
対TUI:
シェルをより魔法の呪いの状態にする代わりに、stdoutに出力するだけなので、より堅牢です。例:
vi
モードで.inputrc
問題が発生する:https ://superuser.com/questions/180512/how-to-turn-off-gdb-tui/927728#927728Pythonから高度に構成可能:デバッグする内容に応じて、出力する内容と各セクションの大きさを選択できます。
ソース、アセンブリ、レジスタ、スタック、メモリ、スレッド、式など、最も便利なビューはすでに実装されていますが、GDBPythonAPIで公開されている情報を使用して簡単に拡張できるはずです。
TUIでは、ソース、アセンブリ、レジスタの2つしか表示できません。それだけです。もちろん、変更したい場合を除いて、Cのソースコードです;-)
GDBは、箱から出してすぐにそのようなセットアップで出荷され、デフォルトでオンになっているはずです。そうすれば、はるかに多くのユーザーを引き付けることができます。
ああ、そしてメインの開発者であるAndrea Cardaciは、非常に反応が良く、素晴らしい人でした。大きな称賛。
コマンド「-」(ダッシュ)を使用して、gdbシェルから起動することもできます。ただし、動的にオフにする方法はわかりません。
gdblayout
にコマンドとして入力すると、分割ウィンドウが表示されます。
GDBが標準モードの場合、を使用win
すると自動的にTUIモードに切り替わります。
TUIモードの他のコマンド:
info win
focus next | prev | src | asm | regs | split
詳細については、こちらをお読みください。
tuiモードは明らかにemacsに触発されました-emacsの分割ウィンドウを切り替える^Xoを押したときに偶然に発見しました-私がすべきことは別のプログラムに切り替えることであるときに、ぼんやりとそれを打つことがあります。とにかく、それはまだ言及されていない別の機能につながります。^ Xoを使用して、カーソルをコードウィンドウ(スクロールできる場所)からコマンドラインに、またはその逆に移動できます。