From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6505 invoked by alias); 24 Apr 2003 22:02:55 -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 6498 invoked from network); 24 Apr 2003 22:02:54 -0000 Received: from unknown (HELO cygnus.equallogic.com) (65.170.102.10) by sources.redhat.com with SMTP; 24 Apr 2003 22:02:54 -0000 Received: from cygnus.equallogic.com (localhost.localdomain [127.0.0.1]) by cygnus.equallogic.com (8.11.6/8.11.6) with ESMTP id h3OM2rt07346 for ; Thu, 24 Apr 2003 18:02:53 -0400 Received: from deneb.dev.equallogic.com (deneb.dev.equallogic.com [172.16.1.99]) by cygnus.equallogic.com (8.11.6/8.11.6) with ESMTP id h3OM2rr07334; Thu, 24 Apr 2003 18:02:53 -0400 Received: from pkoning.dev.equallogic.com.equallogic.com (localhost.localdomain [127.0.0.1]) by deneb.dev.equallogic.com (8.11.6/8.11.6) with ESMTP id h3OM2qv12960; Thu, 24 Apr 2003 18:02:53 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <16040.24304.972922.825790@pkoning.dev.equallogic.com> Date: Thu, 24 Apr 2003 22:02:00 -0000 From: Paul Koning To: drow@mvista.com Cc: carlton@bactrian.org, gdb@sources.redhat.com Subject: Re: breakpoints in constructors References: <20030424145034.GA14226@nevyn.them.org> X-SW-Source: 2003-04/txt/msg00305.txt.bz2 >>>>> "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. paul