Support debug-only code

I don't understand. Why can't you just pass flags to the build and check using #if DEBUG or something similar. Even if all of your debug code lives in functions, I think the optimizer will optimize away empty functions in release mode.