DebugBreak is a Windows API that stops execution when called. This is fine, except DebugBreak is a function call. This means that you have to step out of the function before you can start working. What would be nice is if we could break at the point of execution of DebugBreak instead of inside the function. Now, when DebugBreak is called, we stop immediately and we don't need to step out of the function to begin work.
Most people are familiar with runtime asserts.
These asserts simply stop execution when an expression is false. By redefining your runtime assert, you can make it a bit more powerful. This assert can be turned off. The possibilities are endless. Assert boxes could give all kinds of debugging information, if you take the time to write it.