Этот ответ устарел, 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>
Создать скрипт awk, который преобразует его в формат, полезный для файла .gdbinit
или --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