Step debuggers don't "create Heisenbugs", you're just much more likely to notice race conditions while step debugging than print debugging. If anything, print debugging creates more bugs because you're altering the code you're trying to test by definition.