GDB にブレークポイントのリストを保存させる

GDB 7.2 (2011-08-23) 以降、セーブ ブレークポイントを使用できるようになりました コマンド。

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.

source <filename> を使用 ファイルから保存されたブレークポイントを復元します。


この回答は古くなっています。 GDB は直接保存をサポートするようになりました。この回答をご覧ください。

ロギングを使用できます:

(gdb) b main
Breakpoint 1 at 0x8049329
(gdb) info break
Num     Type           Disp Enb Address    What
1       breakpoint     keep y   0x08049329 <main+16>
(gdb) set logging file breaks.txt
(gdb) set logging on
Copying output to breaks.txt.
(gdb) info break
Num     Type           Disp Enb Address    What
1       breakpoint     keep y   0x08049329 <main+16>
(gdb) q

ファイルbreaks.txtには以下が含まれています:

Num     Type           Disp Enb Address    What
1       breakpoint     keep y   0x08049329 <main+16>

それを .gdbinit に役立つ形式に変換する AWK スクリプトを作成する または --command ファイルは簡単です。または、スクリプトに別の --eval-command を発行させることもできます のGDBコマンドラインへ...

この小さなマクロを .gdbinit に追加すると、それを行うのに役立ちます:

# Call with dump_breaks file.txt
define dump_breaks
    set logging file $arg0
    set logging redirect on
    set logging on
    info breakpoints
    set logging off
    set logging redirect off
end

gdb> で入力するのと同じように、GDB コマンドとブレークポイントを .gdbinit ファイルに入れます。 プロンプトが表示され、GDB は起動時にそれらを自動的にロードして実行します。これはディレクトリごとのファイルであるため、プロジェクトごとに異なるファイルを持つことができます。