Как сохранить информацию о настройке gdb внутри сеанса gdb?

#session #save #gdb #command #breakpoints

#сеанс #Сохранить #gdb #команда #точки останова

Вопрос:

Мы можем использовать .gdbinit или командный файл для запуска gdb с предварительно установленными командами и определениями макросов. Но мой случай в:

Я запустил gdb и определил несколько «точек останова», «команд», «определяет», как сохранить эту информацию о сеансе отладки в файл (либо .gdbinit, либо файл commands) с помощью команды gdb? Я не хочу отслеживать историю команд gdb и копировать-вставлять все эти типы.

Поддерживает ли это gdb? Спасибо.

Ответ №1:

Вы можете использовать функцию ведения журнала GDB. Ниже указанные параметры доступны в документации GDB.

https://sourceware.org/gdb/current/onlinedocs/gdb/Logging-Output.html#Logging-Output

 set logging on
           Enable logging. 
set logging off
           Disable logging. 
set logging file file
           Change the name of the current logfile. The default logfile is gdb.txt. 
set logging overwrite [on|off]
           By default, gdb will append to the logfile. Set overwrite if you want set logging on to overwrite the logfile instead. 
set logging redirect [on|off]
           By default, gdb output will go to both the terminal and the logfile. Set redirect if you want output to go only to the log file. 
show logging
          Show the current values of the logging settings.
  

Комментарии:

1. В журнале регистрируются выходные данные команд gdb, но не сами команды.

Ответ №2:

Вы можете сделать это частично из gdb, но в остальном вы немного предоставлены сами себе.

То, что вы можете сделать, это сохранить точки останова. Это просто:

 (gdb) save breakpoints /tmp/whatever-file
  

К сожалению, в настоящее время нет способа сохранить define — для этого есть ошибка gdb.

Единственное, что вы можете сделать в этом случае, это использовать show user , чтобы найти свою команду, затем вырезать и вставить ее в файл. Или, может быть, можно реализовать гипотетическое save user из Python.