Page 1 of 1

debug symbols

Posted: Tue Sep 25, 2007 10:52 pm
by Jonathan
Since none of you produce end-user software that I am aware of, do you leave debug symbols on in your production builds or not? What level of compiler optimizations do you use?

I suppose I am assuming you're producing compiled code. Are you?

Posted: Tue Sep 25, 2007 10:57 pm
by Peijen
No debug symbols, compiler optimized code (single level for .net)

Posted: Sat Sep 29, 2007 1:17 pm
by George
Varies by project. Safety critical and time-critical systems generally disable optimizations and leave the debug symbols alone on the assumption that you did most of your testing that way and don't dare add uncertainty.

Another system was supposed to be released optimized, but that had to be removed when a bad optimization was detected that corrupted data. We tracked that one, but couldn't be sure if there were others, so it was safer to leave it off.

Something similar just happened with a Linux (gcc) optimized build corrupting data where Win32 (VC++) opt and debug and Linux debug worked fine. For that, we stuck a couple "volatile" keywords around to stop local optimizations, and called it a day.

Posted: Sat Sep 29, 2007 7:21 pm
by VLSmooth
From the C side of the house, optimization varies from none to -o2, very rarely more than that. We don't compile with debug symbols and #define out in-house debug functions.