diff options
author | ajs <ajs> | 2004-11-26 18:11:14 +0000 |
---|---|---|
committer | ajs <ajs> | 2004-11-26 18:11:14 +0000 |
commit | 063ee52af64472474af2fa4b3cb2ba9ced746b9f (patch) | |
tree | d9d0f9dac723159cefd21d350195fabe286032e5 /lib/memory.c | |
parent | d1c51d7c27a1c5f5c838ef5f09e98e33527bfddc (diff) | |
download | quagga-063ee52af64472474af2fa4b3cb2ba9ced746b9f.tar.bz2 quagga-063ee52af64472474af2fa4b3cb2ba9ced746b9f.tar.xz |
2004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* log.c: (zlog_backtrace) New function to log a backtrace.
(zlog_backtrace_safe) Log a backtrace in an async-signal-safe way.
Unfortunately, this function does not support syslog logging yet.
(zlog_signal) Move backtrace code into separate function
zlog_backtrace_safe.
(_zlog_assert_failed) Call zlog_backtrace before aborting.
* log.h: Declare new functions zlog_backtrace and zlog_backtrace_safe.
* memory.c: (zerror) Call zlog_backtrace before aborting.
Diffstat (limited to 'lib/memory.c')
-rw-r--r-- | lib/memory.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/memory.c b/lib/memory.c index 6eb135f0..0d23e542 100644 --- a/lib/memory.c +++ b/lib/memory.c @@ -46,6 +46,11 @@ zerror (const char *fname, int type, size_t size) zlog_err ("%s : can't allocate memory for `%s' size %d: %s\n", fname, lookup (mstr, type), (int) size, safe_strerror(errno)); log_memstats(LOG_WARNING); + /* N.B. It might be preferable to call zlog_backtrace_safe here, since + that function should definitely be safe in an OOM condition. But + unfortunately zlog_backtrace_safe does not support syslog logging at + this time... */ + zlog_backtrace(LOG_WARNING); abort(); } |