[Ecls-list] Patch: print errno in ecl_internal_error()
Josh Elsasser
josh at elsasser.org
Sun Jan 25 15:34:45 UTC 2009
On Sun, Jan 25, 2009 at 10:06:30AM -0500, Geo Carncross wrote:
> You'll need to save errno first as printf() can clobber it. Also, strerror()
> can modify errno as well.
You're right, I wasn't thinking. Here's an improved patch:
diff --git src/c/error.d src/c/error.d
index 0214de3..9c88dc8 100644
--- src/c/error.d
+++ src/c/error.d
@@ -29,7 +29,10 @@
void
ecl_internal_error(const char *s)
{
+ int saved_errno = errno;
printf("\nInternal or unrecoverable error in:\n%s\n", s);
+ if (saved_errno)
+ printf(" [%d: %s]\n", saved_errno, strerror(saved_errno));
fflush(stdout);
#ifdef SIGIOT
signal(SIGIOT, SIG_DFL); /* avoid getting into a loop with abort */
More information about the ecl-devel
mailing list