On Wed, Dec 05, 2007 at 09:05:33AM -0500, Diego Novillo wrote: > In my simplistic view of this problem, I've always had the idea that -O0 > -g means "full debugging bliss", -O1 -g means "tolerable debugging" > (symbols shouldn't disappear, for instance, though they do now) and -O2 > -g means "you can probably know what line+function you're executing".
I'd be happy enough if the state of -O1 -g debugging were improved, perhaps using some of Alexandre's ideas so that it could be "full debugging bliss" with some optimization as well. Speeding up the compile/test/debug/modify cycle would result. We could then have fast but fully debuggable code at -O1, and even faster code at -O2 not constrained by the requirement of, as Diego says, "deconstructing arbitrary transformations done by the optimizers".