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

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

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

Сердечно


person Anhuin    schedule 25.05.2011    source источник
comment
Не могли бы вы поделиться своей исходной программой, которая печатает каждый выполненный адрес? У меня нет опыта работы с ptrace, и мне было бы интересно изучить такой простой пример его использования.   -  person eschulte    schedule 14.12.2011


Ответы (1)


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

person ninjalj    schedule 25.05.2011
comment
Спасибо за ответ! Попробую сделать! - person Anhuin; 26.05.2011