From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7804 invoked by alias); 16 Jul 2004 19:31:28 -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 7789 invoked from network); 16 Jul 2004 19:31:27 -0000 Received: from unknown (HELO smtp6.mindspring.com) (207.69.200.110) by sourceware.org with SMTP; 16 Jul 2004 19:31:27 -0000 Received: from user-119a90a.biz.mindspring.com ([66.149.36.10] helo=berman.michael-chastain.com) by smtp6.mindspring.com with esmtp (Exim 3.33 #1) id 1BlYQH-0003Id-00; Fri, 16 Jul 2004 15:31:09 -0400 Received: by berman.michael-chastain.com (Postfix, from userid 502) id EFE514B104; Fri, 16 Jul 2004 15:31:17 -0400 (EDT) To: drow@false.org, eliz@gnu.org Subject: Re: How to setup a breakpoint on constructor Cc: gdb@sources.redhat.com, mec.gnu@mindspring.com, rolandz@poczta.fm Message-Id: <20040716193117.EFE514B104@berman.michael-chastain.com> Date: Fri, 16 Jul 2004 19:59:00 -0000 From: mec.gnu@mindspring.com (Michael Elizabeth Chastain) X-SW-Source: 2004-07/txt/msg00214.txt.bz2 To take the points in reverse order, > (B) It exposes the difference between complete and base constructors, > which is an implementation detail of the C++ ABI that most users don't > understand. That is reality. The reality is that g++ emits two functions in the object code. In my opinion, if we try to gloss over that, then we'll just create more confusion for commands such as 'disassemble' and 'tbreak'. > (A) It was an ugly interface change to work around an internal > limitation, and they needed to retrain users to it. I agree with this part, to an extent. However, the gdb group has no control over the fact that there are two object code functions. I like the way it worked in gcc 2.95.3. With gcc 2.95.3, gcc emits one function with a hidden parameter. c++ programmers and gdb are both familiar with hidden parameters ('this'). If I recall correctly, Apple modified gcc 3.X to do something similar. Michael C