Используя gdb, вы можете включить ведение журнала:
set logging file my_log_filename.log
set logging on
и напишите рекурсивный макрос шага:
define s
stepi
s
end
Используя ptrace, просто ptrace(PTRACE_SINGLESTEP...)
, пока трассировка не закончится или не получит сигнал.