diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | main.c | 4 | ||||
-rw-r--r-- | msg.c | 2 |
3 files changed, 12 insertions, 0 deletions
@@ -1,3 +1,9 @@ +2018-02-10 Arnold D. Robbins <arnold@skeeve.com> + + * main.c, msg.c: Add a call to fflush(NULL) before each call + to abort(), since GLIBC 2.27 doesn't necessarily flush before + aborting. Thanks to Nelson H.F. Beebe for the report. + 2018-02-09 Arnold D. Robbins <arnold@skeeve.com> * io.c (socketopen): Rearrange assigning the flags to use @@ -1226,6 +1226,8 @@ catchsig(int sig) set_loc(__FILE__, __LINE__); msg(_("fatal error: internal error")); /* fatal won't abort() if not compiled for debugging */ + // GLIBC 2.27 doesn't necessarily flush on abort. Sigh. + fflush(NULL); abort(); } else cant_happen(); @@ -1240,6 +1242,7 @@ catchsegv(void *fault_address, int serious) { set_loc(__FILE__, __LINE__); msg(_("fatal error: internal error: segfault")); + fflush(NULL); abort(); /*NOTREACHED*/ return 0; @@ -1252,6 +1255,7 @@ catchstackoverflow(int emergency, stackoverflow_context_t scp) { set_loc(__FILE__, __LINE__); msg(_("fatal error: internal error: stack overflow")); + fflush(NULL); abort(); /*NOTREACHED*/ return; @@ -101,6 +101,8 @@ err(bool isfatal, const char *s, const char *emsg, va_list argp) if (isfatal) { #ifdef GAWKDEBUG + // GLIBC 2.27 doesn't necessarily flush on abort. Sigh. + fflush(NULL); abort(); #endif gawk_exit(EXIT_FATAL); |