I mean, the typical failure mode for a C++ program is an unrecoverable core dump. I guess you can use it to test logic errors but you're only getting some of the benefits.

I have to say that the SUnit framework that we are using in Squeak these days is FAB! You run the tests and it puts up a list of failures in a window. Click a failure and the code is rerun and a debugger opens on the entry point for the test. You step in, watch what is going on, fix it as you go, and move on. Coding in the debugger is fun!