This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Finding the type of an exception


Hello,

I am looking at a core generated by a C++ process because a throw spec
was violated by a function.

The concerned frame in the stack trace is :
#5  0xf65c2485 in __cxa_call_unexpected (exc_obj_in=0xb58cbb4) at
/sw/gcc/src/libstdc++-v3/libsupc++/eh_personality.cc:485


At this point in the process (after std::unexpected() has been called
and we end up in the above function), is it still somehow possible to
deduce the type of the exception from the exc_obj_in void * argument?
Say by trying to interpret the above void * argument as a std::exception
(from other reasons, I am pretty sure that this was a std::exception)
and then doing what typeid does to get at the type_info ?

I am not knowledgeable about the gcc unwinding internals and am not sure
if the above will work, even in principle. 

Thanks a lot.
Mayuresh.
--------------------------------------------------------

NOTICE: If received in error, please destroy and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]