Turns out, there's an initializer at the top of backtrace() that (on
some arches) calls dlopen(). dlopen(), unsurprisingly, calls malloc().
So, call backtrace() early in signal handler setup so we can later
safely call it from the signal handler itself.