Since I can't reproduce the original crash, I am trying other means of
gathering evidence. A SIGTERM could be handled at any time right?
Including as in this artificial reproduction.

> But the Lisp backtrace doesn't tell which function of the
> kill-emacs-hook was running,

Yes it does. The hook is ede-save-cache. It is one of the two hooks my
configuration sets up, as I indicated earlier.

> and GC didn't really start doing its job, so it's not exactly the
> same crash.

It is after gc_in_progress = 1. Are you trying to argue Emacs cannot
possibly enter the SIGTERM handler between that and when GC "really
starts doing its job" (whenever that is)?

> And look at the variable 'args', which should be a list. Since this
> session crashed in GC, it is not safe to print Lisp objects with
> "pp" and its likes. Instead, you will have to walk the list using
> "xcar" and "xcdr", display the type of each object in the list using
> "xtype", and then display the object itself with the appropriate x*
> command, normally "xsymbol", since the list is constructed from
> function symbols.

Can this be done for core dump files?