Точки останова GDB - PullRequest
       11

Точки останова GDB

32 голосов
/ 01 февраля 2009

У меня есть список точек останова, которые я хочу добавлять каждый раз, когда отлаживаю определенную программу.

Есть ли способ поместить всю информацию о точках останова в файл и использовать ее в начале каждого сеанса отладки? Другими словами, могу ли я предоставить файл сценария с информацией о точке останова в GDB перед тем, как дать команду 'run'?

Ответы [ 6 ]

29 голосов
/ 01 февраля 2009

С man gdb (1) :

  -x file
           Execute GDB commands from file file.

Затем вы можете поместить точки останова в файл:

break [file:]function
break [file:]function
...
25 голосов
/ 01 февраля 2009

Вы можете поместить все нужные вам команды в файл .gdbinit, который находится в том же каталоге, что и исполняемый файл, который вы отлаживаете.

Что-то вроде:

b somefile.c:128
b otherfile.c:33

Должно работать нормально.

Редактировать: Да, аргумент командной строки -x позволит вам выполнять произвольные файлы при запуске GDB, но поддержание файла .gdbinit для каждого проекта означает, что файл выполняется автоматически (без необходимость указать имя файла). Кроме того, вы можете легко добавить специфичный для проекта файл .gdbinit в систему контроля версий, что означает, что все члены вашей команды могут использовать одни и те же средства отладки.

12 голосов
/ 01 февраля 2009

Помимо использования внешнего файла, вы также можете просто оставить GDB открытым: если двоичный файл в GDB изменится, он перезагрузит двоичный файл и библиотеки без потери точек останова при следующем запуске.

10 голосов
/ 21 октября 2010

Команда сохранения точек останова является новой с gdb 7.2. После того, как вы сохранили точки останова в файле, вы можете прочитать их в последующем сеансе GDB с помощью команды source, а затем при следующем запуске 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.
2 голосов
/ 01 февраля 2009

Или используйте:

gdb --command=commands.gdb ./a.out

где commands.gdb - текстовый файл с вашими точками останова.

--command, вероятно, совпадает с -x

1 голос
/ 22 августа 2010

В документации GDB утверждается, что можно использовать команды "сохранить точки останова" и "источник": http://sourceware.org/gdb/current/onlinedocs/gdb/Save-Breakpoints.html#Save-Breakpoints. Однако это не работает на моем GDB (7.1-Ubuntu).

...