2010-12-06 4 views
14

私はgdbと歩調を合わせることができますが、私がソースコードのどこにいるかを見たいときは常に "list"コマンドを与えなければなりません。どのステップごとにGDBに 'list'を実行させるのですか?

(gdb) next 
351  int right = get_variable(right_token, right_id); 
(gdb) list 
346   op = "<>"; 
347   right_id = parse_id_or_crash(); 
348  } 
349  Token * right_token = tokens[parser_index - 1]; 
350  int left = get_variable(left_token, left_id); 
351  int right = get_variable(right_token, right_id); 
352  if (op == "<") 
353   return left < right; 
354  if (op == ">") 
355   return left > right; 

gdbがすべての手順の後で自動的にソースコードを表示するとよいでしょう。また、gdbがソースコードのどこにあるかを示すことができれば( " - >"などのように)素晴らしいこともあります。一度に1行のコードしか見ないのであれば、私はちょっと閉所恐怖症になります。

答えて

6

あなたはこのためにGDBのマクロを使用することができます。

(gdb) def n 
Type commands for definition of "n". 
End with a line saying just "end". 
>next 
>list 
>end 

あなたは現在の行に矢印がしたい場合は、代わりに(例えばM-x gdb Emacsの中に)GDBのフロントエンドを使用して検討するかもしれません。あなたが結合C-XキーでTUIモードを入力するか、残すことができ

2

hook-stop

define hook-stop 
    l 
end 

DOC:https://sourceware.org/gdb/current/onlinedocs/gdb/Hooks.html

また、疑似命令は、「停止」が存在します。 Defining( 'hook-stop')は、プログラムで実行が停止するたびにブレークポイントコマンドが実行され、ディスプレイが表示されたり、スタックフレームが印刷される前に、関連付けられたコマンドを実行します。学んだ

https://stackoverflow.com/a/8374474/895245

ハイライト現在の行を

これは完全に完全にバグ-tuiモードを交換するために不足している唯一のものです。

それはPythonスクリプトなしで現在可能ではありません:Pythonスクリプトでhttps://sourceware.org/bugzilla/show_bug.cgi?id=21044

、私は現在、使用しています:https://github.com/cyrus-and/gdb-dashboard

も参照してください:How to highlight and color gdb output during interactive debugging?

関連する問題