http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57487
Bug ID: 57487 Summary: vterminate.cc local variable optimized out Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug Assignee: unassigned at gcc dot gnu.org Reporter: tromey at gcc dot gnu.org I built git master gcc today (317121db1372a50999ab1cba75aa59df0f2eff7c) using the default arguments on my x86-64 Fedora 18 machine. Then I compiled this program with the new g++ and ran it in gdb: int main() { throw 5; } Then, at the crash, I went up until I was in the verbose terminate handler frame. At this point I looked at the locals: #2 0x00007ffff7d59515 in __gnu_cxx::__verbose_terminate_handler () at ../../../../gcc/libstdc++-v3/libsupc++/vterminate.cc:95 95 abort(); (gdb) info local terminating = true t = <optimized out> Here, it is unfortunate that 't' is optimized out. If it were not, then the thrown exception type would be obvious from the stack trace. As it is, this information is written to stderr but otherwise lost -- for example, ABRT cannot easily pick it up.