Есть ли способ присоединить оператор печати к вызову функции?
Да: прикрепить точку останова к каждой функции, которую вы хотите отследить, и прикрепить команды к каждому изэти точки останова:
(gdb) break foo
(gdb) commands $bpnum
continue
end
Теперь каждый раз, когда вызывается foo
, GDB будет печатать обычное сообщение «Точка останова N ...», а затем продолжать.
Очевидно, что вы можете напечатать дополнительныеinfo (значения аргументов, стек вызовов, идентификатор потока и т. д.).
Возможно, вы захотите set height 0
, чтобы отключить разбиение на страницы.Возможно, вы также захотите записать это в файл (см. set logging file
, set logging on
и т. Д.)