On Tuesday, March 06, 2012 05:11:30 Martin Nowak wrote: > There are two independent discussions being conflated here. One about > getting more > information out of crashes even in release mode and the other about > adding runtime checks to prevent crashing merely in debug builds.
A segfault should _always_ terminate a program - as should dereferencing a null pointer. Those are fatal errors. If we had extra checks, they would have to result in NullPointerErrors, not NullPointerExceptions. It's horribly broken to try and recover from dereferencing a null pointer. So, the question then becomes whether adding the checks and getting an Error thrown is worth doing as opposed to simply detecting it and printing out a stack trace. And throwing an Error is arguably _worse_, because it means that you can't get a useful core dump. Really, I think that checking for null when dereferencing is out of the question. What we need is to detect it and print out a stacktrace. That will maximize the debug information without costing performance. - Jonathan M Davis