Sometimes printf debugging is all you have available. But printf can be lousy for debugging race conditions because it's pretty slow and worse, libc's printf takes a lock and so introduces a synchronisation point. So I made a simple library that is both fast (~5ns on a half-decent machine) and lock-free.
It doesn't completely defeat the Heisenberg principle of course, but you can in practice add a decent amount of logging without affecting timing in a meaningful way.
It doesn't completely defeat the Heisenberg principle of course, but you can in practice add a decent amount of logging without affecting timing in a meaningful way.
Enjoy!