From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8158 invoked by alias); 24 Jun 2003 21:07:24 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 11330 invoked from network); 24 Jun 2003 20:26:31 -0000 Received: from unknown (HELO concert.shout.net) (204.253.184.25) by sources.redhat.com with SMTP; 24 Jun 2003 20:26:31 -0000 Received: from duracef.shout.net (duracef.shout.net [204.253.184.12]) by concert.shout.net (8.12.9/8.12.9) with ESMTP id h5OKQUwU031211 for ; Tue, 24 Jun 2003 15:26:30 -0500 Received: from duracef.shout.net (localhost [127.0.0.1]) by duracef.shout.net (8.12.9/8.12.9) with ESMTP id h5OKQUns012997 for ; Tue, 24 Jun 2003 15:26:30 -0500 Received: (from mec@localhost) by duracef.shout.net (8.12.9/8.12.9/Submit) id h5OKQThr012996 for gdb-patches@sources.redhat.com; Tue, 24 Jun 2003 16:26:29 -0400 Date: Tue, 24 Jun 2003 21:07:00 -0000 From: Michael Elizabeth Chastain Message-Id: <200306242026.h5OKQThr012996@duracef.shout.net> To: gdb-patches@sources.redhat.com Subject: [rfa] PROBLEMS: document 'constructor breakpoint ignored' bug X-SW-Source: 2003-06/txt/msg00756.txt.bz2 This patch documents the notorious "constructor breakpoints ignored" problem in the gdb PROBLEMS file. Okay to apply this to mainline? Okay to apply this to the 6.0 branch? Michael C 2003-06-24 Michael Chastain * PROBLEMS: Document pr gdb/1091 and pr gdb/1193, the "constructor breakpoints ignored" bug. Index: PROBLEMS =================================================================== RCS file: /cvs/src/src/gdb/PROBLEMS,v retrieving revision 1.15 diff -c -3 -r1.15 PROBLEMS *** PROBLEMS 23 Jun 2003 03:28:13 -0000 1.15 --- PROBLEMS 24 Jun 2003 20:20:53 -0000 *************** *** 3,6 **** --- 3,21 ---- See also: http://www.gnu.org/software/gdb/bugs/ + gdb/1091: Constructor breakpoints ignored + gdb/1193: g++ 3.3 creates multiple constructors: gdb 5.3 can't set breakpoints + When gcc 3.x compiles a C++ constructor or C++ destructor, it generates + 2 or 3 different versions of the object code. These versions have + unique mangled names (they have to, in order for linking to work), but + they have identical source code names, which leads to a great deal of + confusion. Specifically, if you set a breakpoint in a constructor or a + destructor, gdb will put a breakpoint in one of the versions, but your + program may execute the other version. This makes it impossible to set + breakpoints reliably in constructors or destructors. + + gcc 3.x generates these multiple object code functions in order to + implement virtual base classes. gcc 2.x generated just one object code + function with a hidden parameter, but gcc 3.x conforms to a multi-vendor + ABI for C++ which requires multiple object code functions.