Получить GDB для печати трассировки стека при возврате к его приглашению - PullRequest
2 голосов
/ 16 февраля 2011

Как я могу заставить GDB печатать трассировку стека (например, запускать команду bt автоматически ) каждый раз, когда он возвращает мне управление по его приглашению?

1 Ответ

5 голосов
/ 16 февраля 2011

Вы можете использовать команду «define» для определения новых команд, которые выполняют обычное действие и впоследствии выполняют обратную трассировку, или вы можете использовать форму «define hookpost-command» для расширения существующей команды дополнительными действиями.

(gdb) define hookpost-next
Type commands for definition of "hookpost-next".
End with a line saying just "end".
>backtrace
>end
(gdb) next
19          for (int k = 0; k<loops; ++k){
#0  main () at optimize.cpp:19

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

define hookpost-next
backtrace
end

Вы можете сделать это для каждой из команд, которые вы хотите расширить с помощью backtrace.

...