Приложение трассировки, скомпилированное gcc - PullRequest
0 голосов
/ 29 октября 2011

Я хочу отследить приложение, скомпилированное gcc.Под трассировкой я подразумеваю, что хочу видеть адрес каждой выполненной инструкции.Какой самый простой способ добиться этого?

Ответы [ 3 ]

2 голосов
/ 29 октября 2011

Ваша лучшая ставка, конечно, использовать GDB.

Скомпилируйте ваш код:

$ gcc -Wall m.c -o m

Проследите его с помощью GDB:

$ gdb m
> b main
> r

GDB прервется наВаша функция ввода: main.

Если этот тип трассировки вам не подходит, попробуйте использовать strace в Linux или dtrace вSolaris, BSD или Mac OS X.

0 голосов
/ 31 октября 2011

Я думаю, вы могли бы попробовать это

strace -i имя_программы

Примечание: при этом будут печататься только системные вызовы, вызванные из нужной программы.

0 голосов
/ 30 октября 2011

Используя gdb, вы можете включить ведение журнала:

set logging file my_log_filename.log
set logging on

и напишите рекурсивный макрос шага:

define s
stepi
s
end

Используя ptrace, просто ptrace(PTRACE_SINGLESTEP...), пока трассировка не закончится или не получит сигнал.

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