Как отслеживать выполнение программы с помощью ptrace?

#c #linux #ptrace

#c #linux #ptrace

Вопрос:

Я пытался использовать системный вызов «ptrace» (используя макрос PTRACE_SINGLESTEP) для отслеживания выполнения простого приложения.

Во время записи выполнения программы я хотел бы пропустить бесполезную часть чтения, чтобы следовать только из «main» моего приложения. Потому что всякий раз, когда я запускаю свой трассировщик, я получаю около 100 тыс. шагов выполнения.

Сердечно

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

1. Не могли бы вы поделиться своей оригинальной программой, которая печатает каждый выполняемый адрес? У меня нет опыта работы с ptrace, и мне было бы интересно изучить такой простой пример его использования.

Ответ №1:

Возможно, вы захотите вставить точку останова при main входе, дождаться SIGTRAP поступления, восстановить инструкцию под точкой останова и выполнить один шаг оттуда.