------- Additional Comments From bangerth at dealii dot org  2004-11-24 16:49 
-------
This has been discussed numerous times, and the main problem people had 
in coming up with better diagnostics is that the operating system does 
not communicate to a program why it is being killed. What happens is that 
the OS allows you to allocate lots of memory, but it doesn't actually provide 
it until you actually start writing to these pages for the first time. At 
that time, you write to an invalid page, a signal is raised, and the OS tries 
to come up with some physical memory to put behind that address. If it is out 
of memory, it can't do that and returns to the application without physical 
memory. The program then aborts with an invalid memory access, just as if 
you tried to dereference a null pointer. The program itself has no idea what 
happened, and the signal handler for the invalid memory access is invoked 
which then prints out the error message you have seen. 
 
What would probably have to happen for this to be fixed is to change the 
OS so that it gives an indication what is going wrong when it can't satisfy 
memory requests. That's a much bigger problem, though, than to just change 
a compiler message. After all, we don't want to lose the error message one 
gets when the compiler really tries to dereference a null pointer. 
 
W. 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18639

Reply via email to