From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Jacobowitz To: libstdc++@gcc.gnu.org, gdb@sources.redhat.com Subject: [dmj+@andrew.cmu.edu: Re: C++ debugging progress] Date: Wed, 28 Nov 2001 12:18:00 -0000 Message-id: <20011128151908.A1036@nevyn.them.org> X-SW-Source: 2001-11/msg00320.html Feh. Meant to send this to the lists. ----- Forwarded message from Daniel Jacobowitz ----- Date: Wed, 28 Nov 2001 15:18:19 -0500 From: Daniel Jacobowitz Subject: Re: C++ debugging progress To: Jason Merrill On Wed, Nov 28, 2001 at 07:40:37PM +0000, Jason Merrill wrote: > >>>>> "Daniel" == Daniel Jacobowitz writes: > > > On Wed, Nov 28, 2001 at 09:31:07AM +0000, Jason Merrill wrote: > > >> So you're using the inheritance information in the RTTI rather than the debug > >> info? That seems unfortunate. I'm not sure why you would need to worry > >> about ordering; the debug info should tell you exactly where things are. > >> If it doesn't, it should probably be fixed. > > > In that case, the debug info absolutely needs to be fixed. > > > <1><22e>: Abbrev Number: 15 (DW_TAG_structure_type) > > DW_AT_sibling : <2df> > > DW_AT_name : Left > > DW_AT_byte_size : 12 > > DW_AT_decl_file : 1 > > DW_AT_decl_line : 2 > > DW_AT_containing_type: <22e> > > <2><23f>: Abbrev Number: 22 (DW_TAG_inheritance) > > DW_AT_type : <56> > > DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8; ) > > DW_AT_virtuality : 1 (virtual) > > DW_AT_accessibility: 1 (public) > > Yep. Since Base is a virtual base of Left, the DW_AT_data_member_location > here should be a complex expression telling the debugger to go through the > vtable. I'll get on it. Thanks! > I'll also change the stabs output to give the offset within the vtable > rather than the offset of the base in a complete object; gdb will still > need to be clever enough to know what to do with it. OK, if I'm reading this at all correctly, the offset in the baseclass definition is assumed to be 0 for a virtual baseclass, and ignored; it is assumed that there will be a $vb later. So that offset slot is a perfect place to put the information I need. Just let me know if it is relative to the start of the vtable or to the vtable pointer. That'll be enough information to do a much better job. -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer ----- End forwarded message ----- -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21802 invoked by alias); 28 Nov 2001 20:18:54 -0000 Mailing-List: contact gdb-help@sourceware.cygnus.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 21633 invoked from network); 28 Nov 2001 20:18:47 -0000 Received: from unknown (HELO nevyn.them.org) (128.2.145.6) by hostedprojects.ges.redhat.com with SMTP; 28 Nov 2001 20:18:47 -0000 Received: from drow by nevyn.them.org with local (Exim 3.32 #1 (Debian)) id 169BAi-0000Gx-00; Wed, 28 Nov 2001 15:19:08 -0500 Date: Wed, 21 Nov 2001 13:26:00 -0000 From: Daniel Jacobowitz To: libstdc++@gcc.gnu.org, gdb@sources.redhat.com Subject: [dmj+@andrew.cmu.edu: Re: C++ debugging progress] Message-ID: <20011128151908.A1036@nevyn.them.org> Mail-Followup-To: libstdc++@gcc.gnu.org, gdb@sources.redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.23i X-SW-Source: 2001-11/txt/msg00213.txt.bz2 Message-ID: <20011121132600.e1atJdS2f5g-qEHnISCG7-LzwdgPtpFSR9suzq2r5R0@z> Feh. Meant to send this to the lists. ----- Forwarded message from Daniel Jacobowitz ----- Date: Wed, 28 Nov 2001 15:18:19 -0500 From: Daniel Jacobowitz Subject: Re: C++ debugging progress To: Jason Merrill On Wed, Nov 28, 2001 at 07:40:37PM +0000, Jason Merrill wrote: > >>>>> "Daniel" == Daniel Jacobowitz writes: > > > On Wed, Nov 28, 2001 at 09:31:07AM +0000, Jason Merrill wrote: > > >> So you're using the inheritance information in the RTTI rather than the debug > >> info? That seems unfortunate. I'm not sure why you would need to worry > >> about ordering; the debug info should tell you exactly where things are. > >> If it doesn't, it should probably be fixed. > > > In that case, the debug info absolutely needs to be fixed. > > > <1><22e>: Abbrev Number: 15 (DW_TAG_structure_type) > > DW_AT_sibling : <2df> > > DW_AT_name : Left > > DW_AT_byte_size : 12 > > DW_AT_decl_file : 1 > > DW_AT_decl_line : 2 > > DW_AT_containing_type: <22e> > > <2><23f>: Abbrev Number: 22 (DW_TAG_inheritance) > > DW_AT_type : <56> > > DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8; ) > > DW_AT_virtuality : 1 (virtual) > > DW_AT_accessibility: 1 (public) > > Yep. Since Base is a virtual base of Left, the DW_AT_data_member_location > here should be a complex expression telling the debugger to go through the > vtable. I'll get on it. Thanks! > I'll also change the stabs output to give the offset within the vtable > rather than the offset of the base in a complete object; gdb will still > need to be clever enough to know what to do with it. OK, if I'm reading this at all correctly, the offset in the baseclass definition is assumed to be 0 for a virtual baseclass, and ignored; it is assumed that there will be a $vb later. So that offset slot is a perfect place to put the information I need. Just let me know if it is relative to the start of the vtable or to the vtable pointer. That'll be enough information to do a much better job. -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer ----- End forwarded message ----- -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer