[PATCH 21.5] assert_failed should not return

Stephen J. Turnbull stephen at xemacs.org
Tue Sep 25 20:33:41 EDT 2007


Jerry James writes:

 > Look at the very first code in assert_failed (emacs.c).  If
 > fatal_error_in_progress is nonzero, then it returns.  In practice,
 > what this means is that if we have encountered a fatal error condition
 > and while in the process of saving buffers and shutting down encounter
 > an assertion failure, we return from assert_failed and keep executing
 > code.  That is what this patch is designed to change.

If you look at what can be executed (assuming that a wild pointer
hasn't overwritten the return address, in which case of course
anything can happen), it's the code that outputs the stack trace.

So AFAICS, what this means is that if you encounter an assertion
failure while autosaving in a fatal error (and that's really the only
place you can trigger this AFAICS), you don't get any chance of
getting a stack trace at all.  Not for the original fatal error and
not for the assertion.

What is the practical problem with keeping the code as it is?



More information about the XEmacs-Beta mailing list