The new Historical Debugger coming in Visual Studio Team System 2010 will definitely change the way you debug your managed applications (yes, unfortunately it is meant for .NET environment only). What it gives you is the ability to “step-back” through the execution trace while debugging and with that getting to the root of your problems easily.
It is targeted only for .NET since it uses MSIL reconstruction to insert all the trace/debug statements into the IL before the execution. Of course everything happens without any additional code in your application, all that you have to do is to check one of the functionalities in VSTS 2010, as seen here:
This is a really WOW feature that will save you lots and lots of hours spent searching for the bugs in your code (assuming your code has some ;)).