With Debug mode you can better watch the content of variables, setting breakpoints, going through code step by step, and all this with a real synchronous execution of your code.
While in Release mode some optimisations are done with your assembly code. for instance if you use the same value in two variables, then in release mode only one variable is used. That and alot of other reasons make it impossible to use the debugger with release code.
And as Stinky Stoat already mentioned, there are alot of debugging information added into the exe, which can be used by the debugger, to help synchronize code step through.
So, to put it together, use debug mode when you are developing your applications, and if you want to release them, use the release version to compile it.
I haven't had any run-issues so far with debug mode in VS 2003.. as Stinky Stoat mentioned that with VS6 it was the case... (can't confirm that though).
After all, the Debugger is just a development tool that might help you develop your applications faster, and with more ease, but its up to you whether you use it or want to rely on print statements, or, if you are perfect, never make mistakes
greets,
Barnski
-- I just started with DarkSDK, by translating DBP Projects. --