Отслеживание вызова функции GDB - PullRequest
0 голосов
/ 23 ноября 2018

Есть ли способ присоединить оператор print к вызову функции?Я хотел бы отладить программу x64 с вложенными циклами и логикой, и было бы быстрее увидеть последовательность вызовов функций, печатая их по мере их появления, а не устанавливать точки останова.

Можно ли это сделать с помощью сообщениязацепить gdb или другую технику?

1 Ответ

0 голосов
/ 23 ноября 2018

Есть ли способ присоединить оператор печати к вызову функции?

Да: прикрепить точку останова к каждой функции, которую вы хотите отследить, и прикрепить команды к каждому изэти точки останова:

(gdb) break foo
(gdb) commands $bpnum
continue
end

Теперь каждый раз, когда вызывается foo, GDB будет печатать обычное сообщение «Точка останова N ...», а затем продолжать.

Очевидно, что вы можете напечатать дополнительныеinfo (значения аргументов, стек вызовов, идентификатор потока и т. д.).

Возможно, вы захотите set height 0, чтобы отключить разбиение на страницы.Возможно, вы также захотите записать это в файл (см. set logging file, set logging on и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...