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.

Reply via email to