特定のプログラムをデバッグするたびに追加したいブレークポイントのリストがあります。
すべてのブレークポイント情報をファイルに入れて、各デバッグセッションの開始時に使用する方法はありますか?言い換えれば、私は'run'コマンドを与える前にブレークポイント情報を含むスクリプトファイルをGDBに提供できますか?
からman gdb(1):
-x file
Execute GDB commands from file file.
次に、ブレークポイントをファイルに入れることができます。
break [file:]function
break [file:]function
...
必要なすべてのコマンドを、デバッグしている実行可能ファイルと同じディレクトリにある.gdbinit
ファイルに入れることができます。
何かのようなもの:
b somefile.c:128
b otherfile.c:33
正常に動作するはずです。
編集:はい、-x
コマンドライン引数を使用すると、GDBの起動時に任意のファイルを実行できますが、プロジェクトごとに.gdbinit
ファイルを維持すると、ファイルが自動的に実行されます。 (ファイル名を指定する必要はありません)。また、プロジェクト固有の.gdbinit
ファイルをソース管理に簡単に追加できます。つまり、チームメンバー全員が同じデバッグ機能を利用できます。
外部ファイルを使用する以外に、gdbを開いたままにすることもできます。gdbの下のバイナリが変更された場合、次に実行するときにブレークポイントを失うことなく、バイナリとライブラリを再読み込みします。
ブレークポイントの保存コマンドは、gdb7.2以降の新機能です。ブレークポイントをファイルに保存した後、sourceコマンドを使用して後のgdbセッションにブレークポイントを読み込むことができます。次に、gdbを実行するときに、-x <filename>
オプションを使用できます。
save breakpoints <filename>
Save all current breakpoint definitions to a file suitable for use
in a later debugging session. To read the saved breakpoint
definitions, use the `source' command.
または使用:
gdb --command=commands.gdb ./a.out
ここで、commands.gdb
はブレークポイントを含むテキストファイルです。
--command
はおそらく-x
と同じです
GDBのドキュメントには、「ブレークポイントを保存」および「ソース」コマンドを使用できると記載されています。 http://sourceware.org/gdb/current/onlinedocs/gdb/Save-Breakpoints.html#Save-Breakpoints 。ただし、これは私のgdb(7.1-ubuntu)では機能しません。