Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: "Kulkarni, Mayuresh \(IT\)" <Mayuresh.Kulkarni@morganstanley.com>
To: "Daniel Jacobowitz" <drow@false.org>
Cc: <gdb@sourceware.org>
Subject: RE: Finding the type of an exception
Date: Sun, 29 Oct 2006 22:37:00 -0000	[thread overview]
Message-ID: <1F8E762E1B3F814F9630D0D32A1C65F808DA3241@NYWEXMB81.msad.ms.com> (raw)
In-Reply-To: <20061029222142.GA14050@nevyn.them.org>

Ahh cool.. That worked!!

And there I was trying to do some fancy casting business (trying to
simulate the __cxa_call_unexpected(void *) function by looking at its
source code. )

Thanks a lot,
Mayuresh.


    | -----Original Message-----
    | From: Daniel Jacobowitz [mailto:drow@false.org] 
    | Sent: Sunday, October 29, 2006 5:22 PM
    | To: Kulkarni, Mayuresh (IT)
    | Cc: gdb@sourceware.org
    | Subject: Re: Finding the type of an exception
    | 
    | On Sun, Oct 29, 2006 at 05:15:47PM -0500, Kulkarni, 
    | Mayuresh (IT) wrote:
    | > 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 ?
    | 
    | The best place to look for more information about this is 
    | the common
    | C++ ABI document; it's named for Itanium, but don't let 
    | that throw you
    | off, it is actually used with only minor variations (such 
    | as the sizes of types) on other platforms.  You can learn 
    | more about it here:
    | 
    |   http://www.codesourcery.com/cxx-abi/abi.html
    |   http://www.codesourcery.com/cxx-abi/abi-eh.html
    | 
    | The object you've got there is a __cxa_exception, if I'm 
    | remembering how this works right.  If so then the first 
    | pointer is going to be to a type_info.
    | 
    | --
    | Daniel Jacobowitz
    | CodeSourcery
    |
--------------------------------------------------------

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.


  reply	other threads:[~2006-10-29 22:37 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-29 15:54 Why gdb always confirm if I'm quitting when the program is still running? Peng Yu
2006-10-29 20:05 ` Joel Brobecker
2006-10-29 21:18 ` Tavis Ormandy
2006-10-29 22:15   ` Finding the type of an exception Kulkarni, Mayuresh (IT)
2006-10-29 22:21     ` Daniel Jacobowitz
2006-10-29 22:37       ` Kulkarni, Mayuresh (IT) [this message]
2006-10-30  4:18       ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1F8E762E1B3F814F9630D0D32A1C65F808DA3241@NYWEXMB81.msad.ms.com \
    --to=mayuresh.kulkarni@morganstanley.com \
    --cc=drow@false.org \
    --cc=gdb@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox