It looks as though that implementation of xmalloc doesn't match the
general specification of xmalloc, which is that xmalloc must *never*
return NULL (see libiberty/xmalloc.c for the specification).
I'm not sure why gdb is trying to provide its own implementation of these
functions and not use those in libiberty. Andrew?
The ones in libiberty call exit; the ones in gdb call error() and
unwind cleanups. GDB prefers not to abort when it runs out of memory,
esp. if it can just abort the current operation and reclaim memory.