From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11283 invoked by alias); 12 Sep 2005 01:34:21 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 11248 invoked by uid 22791); 12 Sep 2005 01:34:09 -0000 Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Mon, 12 Sep 2005 01:34:09 +0000 Received: from drow by nevyn.them.org with local (Exim 4.52) id 1EEdCt-0002tj-86; Sun, 11 Sep 2005 21:34:03 -0400 Date: Mon, 12 Sep 2005 01:34:00 -0000 From: Daniel Jacobowitz To: Craig Jeffree Cc: Jim Blandy , gdb@sources.redhat.com Subject: Re: Message-ID: <20050912013403.GA10666@nevyn.them.org> Mail-Followup-To: Craig Jeffree , Jim Blandy , gdb@sources.redhat.com References: <1125301769.10500.124.camel@norman> <1125618911.8327.53.camel@norman> <1125625791.8327.76.camel@norman> <20050902131634.GB12830@nevyn.them.org> <1125905591.25254.5.camel@norman> <20050905140046.GA27407@nevyn.them.org> <1125990841.25254.62.camel@norman> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1125990841.25254.62.camel@norman> User-Agent: Mutt/1.5.8i X-SW-Source: 2005-09/txt/msg00065.txt.bz2 On Tue, Sep 06, 2005 at 05:14:01PM +1000, Craig Jeffree wrote: > > Failing that, could you post the readelf output for the entire > > compilation unit containing Soi::Waypoint? From the compilation unit > > header all the way down to the next one. > > > > Yes. However, Daniel, Jim, I will send this to you privately as my > company wishes to keep it off the public archives. I will send it in a > separate email. > > Thanks for helping me through this. First of all, I note that you're using GCC 3.2.3. That version didn't output proper DWARF debugging information for namespaces, so it triggers a different path through GDB (that involves a lot more guessing). Here's what I think is happening. There's considerable code in GDB to guess the namespace of a structure when this problem is encountered. But that code relies upon the mangled names of member functions of the type. Probably it is successfully triggering for the _definition_ of the type, but in some other compilation unit (the one with the reference that shows up as incomplete), the DIE containing the declaration of Soi::Waypoint doesn't have enough information. So the best GDB can come up with is "Waypoint". Then it looks, and doesn't find Waypoint - the only definition was Soi::Waypoint, with a namespace qualifier. So, no match. There's just nothing GDB can do, if that's what's happening. You may be able to find a GCC patch in the archives of gcc-patches or gdb-patches to add DW_AT_namespace support to GCC 3.2.3, if rebuilding the compiler is an option. Otherwise you're stuck until you upgrade GCC. -- Daniel Jacobowitz CodeSourcery, LLC