- priority: 5 --> 2
Sorry this is a little fuzzy. I'm trying to transcribe
old bugs out of my vesta-todo email file, and this one
is from Feb. 2000.
There are lots of places where the cache server catches
a fatal exception, prints partial information about
what went wrong, and then either asserts false or calls
exit(). This is annoying because it throws away
information.
On the ones that assert false, some of the variables
one would want to look at in the core dump were inside
the "try" scope, or deeper
in where the exception was actually thrown, but they
had been unwound from the stack by the time the
assertion caused core to be dumped.
On the exits, of course there is no core dump at all.
Also, at one time smgr would not restart a process if
it called exit, but maybe that is changed now.
For debugging purposes it would be best to have a core
dump from the point where the exception was thrown. I'm
not sure what happens with the C++ runtimes we use if
now an exception is uncaught. Ideally it would dump
core with the throw still on the stack, but I know in
some implementations at least, the stack is fully
unwound when unexpected() is called, so the core dump
doesn't help as much as it could.