2009-02-01 4 views
28

У меня есть список точек останова, которые я хочу добавлять каждый раз при отладке определенной программы. Есть ли способ, которым я могу поместить всю эту информацию останова в файл и использовать ее при запуске каждого сеанса отладки? Другими словами, могу ли я предоставить файл сценария с информацией о контрольной точке в GDB, прежде чем дать команду «запустить».Точки останова GDB

Спасибо заранее, Сэчин

ответ

20

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

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

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

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

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

28

От человек БГД (1):

-x file 
      Execute GDB commands from file file. 

Вы могли бы поставить точки останова в файле:

break [file:]function 
break [file:]function 
... 
12

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

2

Или как насчет:

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

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

/Johan

Update: --command, вероятно, такой же, как -x

1

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

+1

У меня была такая же версия, и она не работала. Я узнал, что эта функция добавлена ​​с gdb версии 7.2. Если вы скомпилируете новую версию, она работает. –

10

Команда save breakpoints является новой по состоянию на 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. 
Смежные вопросы