1

私はコンパイラの分野にまったく慣れていません。私は gcc を使用しており、特定の実行 (最後の実行で実際に実行されたステートメントのみ) のプログラムの実行履歴を取得したいと考えています。

gdbで可能ですか?実行されたステートメントを出力できる gdb で関連するオプションを取得できませんでした。または、実行履歴を取得する他の方法はありますか?

よろしく、ニキル。

4

2 に答える 2

5

プロセス レコードは、あなたが探しているものかもしれません。このリンクには、簡単なチュートリアルと機能の概要が含まれています。

リンクされたウィキページから:

このプログラムを -g でコンパイルし、gdb にロードしてから、次の手順を実行します。

 (gdb) break main  
 (gdb) run  
 (gdb) record

これにより、プロセスの記録がオンになり、デバッグ中のプログラムによって実行される後続のすべての命令が記録されます。

プロセスの記録は、(メインだけでなく) いつでも開始できることに注意してください。後で開始するか、それより早く開始するかを選択できます。唯一の制限は、プログラムが実行されている必要があることです (したがって、「記録」の前に「実行」と入力する必要があります)。プログラムの最初の命令から記録を開始する場合は、次のようにします。

 (gdb) break _start   
 (gdb) run   
 (gdb) record

お役に立てれば。

于 2012-08-21T18:36:35.000 に答える
0

コマンドを使用set history saveして履歴の記録を開始できます。これは、~/.gdbinitファイルに書き込むことができます。詳細については、ドキュメントを参照してください。

于 2012-08-21T18:36:47.213 に答える