So you consider debugging to be waste and your claim is TDD reduces waste. Is my understanding of your argument correct?
If so, is this not just playing with words?
Let´s consider what triggers the act of debugging before release. I think all can agree it´s triggered by one or more tests failing. How else would one know if one needs to debug?
So what is different with TDD? One writes tests upfront and then starts ´writing´ the code incrementally until it passes the tests succesfully. In others words, one is debugging...
But let´s not get carried away by the semantics... Approaches should be evaluated on the results, the value they add...
Do you have any data on this? Are there any studies comparing the different approaches using metrics such as leadtime (are leadtimes significantly shorter when using TDD), failures in production (are there significantly less when using TDD), etc?