Pedagogically as a learning activity (as opposed to a debugging activity) doing dry runs by hand yourself is better than using trace tools that do it for you. It actively embeds understanding of semantics rather than watching it happen more passively.