From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15738 invoked by alias); 25 Apr 2003 00:30:56 -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 15723 invoked from network); 25 Apr 2003 00:30:56 -0000 Received: from unknown (HELO crack.them.org) (65.125.64.184) by sources.redhat.com with SMTP; 25 Apr 2003 00:30:56 -0000 Received: from nevyn.them.org ([66.93.61.169] ident=mail) by crack.them.org with asmtp (Exim 3.12 #1 (Debian)) id 198r7L-0001PL-00; Thu, 24 Apr 2003 19:31:07 -0500 Received: from drow by nevyn.them.org with local (Exim 3.36 #1 (Debian)) id 198r73-0002US-00; Thu, 24 Apr 2003 20:30:49 -0400 Date: Fri, 25 Apr 2003 00:30:00 -0000 From: Daniel Jacobowitz To: Paul Koning Cc: carlton@bactrian.org, gdb@sources.redhat.com Subject: Re: breakpoints in constructors Message-ID: <20030425003049.GA9556@nevyn.them.org> Mail-Followup-To: Paul Koning , carlton@bactrian.org, gdb@sources.redhat.com References: <20030424145034.GA14226@nevyn.them.org> <16040.24304.972922.825790@pkoning.dev.equallogic.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <16040.24304.972922.825790@pkoning.dev.equallogic.com> User-Agent: Mutt/1.5.1i X-SW-Source: 2003-04/txt/msg00307.txt.bz2 On Thu, Apr 24, 2003 at 06:02:24PM -0400, Paul Koning wrote: > >>>>> "Daniel" == Daniel Jacobowitz writes: > > Daniel> On Fri, Apr 18, 2003 at 01:04:46PM -0700, David Carlton > Daniel> wrote: > >> I might have some time over the next few weeks (/months) to work > >> on the "breakpoints in constructors" issue. Daniel: clearly > >> you've thought about this already, so if you happen to have time > >> to do a bit of a brain dump on the issue at some point, I'd > >> appreciate it. > > Daniel> Sure. First of all, a rough overview of the problem; might > Daniel> as well keep everything in one place. > > Daniel> With the new GCC 3.x multi-vendor C++ ABI, constructors are > Daniel> implemented as multiple functions: C1, the complete object > Daniel> constructor [in-charge] C2, the base object constructor > Daniel> [not-in-charge] C3, the allocating constructor [not currently > Daniel> used] > > Daniel> Similarly for destructors - most of the rest of this message > Daniel> applies to destructors too. The base constructor is > Daniel> generally called for the base objects of a derived class, > Daniel> esp. with virtual inheritance; it's been a while since I > Daniel> looked at exactly when. > > Daniel> GCC has chosen to implement this by duplicating the function, > Daniel> including any user-provided code and any compiler-added code. > Daniel> A better implementation would have one copy and labels for > Daniel> multiple entry points, on systems where that is supported; > Daniel> that's temporarily tabled pending a better description of the > Daniel> GCC tree structure to describe multiple entry points. > > Maybe this is off base, but Fortran has always had multiple entry > points, and GCC supports Fortran (g77), so presumably there is a way > to represent this in the tree structure already. I believe that by the time Fortran hands off, we're not in trees any more - that's been a longstanding complaint about g77, it RTLs too easy. But I might be mistaken about that. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer