From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16442 invoked by alias); 13 Jan 2006 15:19:18 -0000 Received: (qmail 16430 invoked by uid 22791); 13 Jan 2006 15:19:17 -0000 X-Spam-Check-By: sourceware.org Received: from sadr.equallogic.com (HELO sadr.equallogic.com) (66.155.203.134) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 13 Jan 2006 15:19:13 +0000 Received: from sadr.equallogic.com (localhost.localdomain [127.0.0.1]) by sadr.equallogic.com (8.12.8/8.12.8) with ESMTP id k0DFJApE019303 for ; Fri, 13 Jan 2006 10:19:11 -0500 Received: from M31.equallogic.com (M31.equallogic.com [172.16.1.31]) by sadr.equallogic.com (8.12.8/8.12.8) with SMTP id k0DFJAih019298; Fri, 13 Jan 2006 10:19:10 -0500 Received: from pkoning.equallogic.com ([172.16.1.169]) by M31.equallogic.com with Microsoft SMTPSVC(6.0.3790.211); Fri, 13 Jan 2006 10:19:10 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17351.50413.754543.175958@gargle.gargle.HOWL> Date: Fri, 13 Jan 2006 15:19:00 -0000 From: Paul Koning To: hilfingr@gnat.com Cc: gdb@sourceware.org Subject: Re: [RFC] multiple breakpoints from FILE:LINE References: <20060113104212.0B28848CBD8@nile.gnat.com> X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2006-01/txt/msg00107.txt.bz2 >>>>> "Paul" == Paul Hilfinger writes: Paul> In response to Paul> break FUNCTION Paul> in C++, GDB currently presents one with a list of choices when Paul> FUNCTION is overloaded. However, this is not the only case in Paul> which the target of a 'break' command is ambiguous. Consider Paul> break FILENAME:LINENUM Paul> Normally, this refers to a single location in a program, but if Paul> this line is in the middle of a C++ template, a multiply Paul> #included file, or an Ada generic definition, it may refer to Paul> several locations. Currently, GDB chooses one of these Paul> silently. Constructors and destructors are another example of this, which is a known probme of long standing. Paul> In Ada mode, AdaCore's GNAT Pro version of GDB will also Paul> present a menu in response to this latter case. In addition, Paul> we introduced a syntax (little used, I believe) for specifying Paul> a line in one specific generic instance: Paul> break FILENAME:FUNCTION:LINENUM Paul> where FUNCTION here would be fully qualified. That is, if P1 Paul> and P2 are two different instantiations of a generic class Paul> defining F, then Paul> break something.adb:P2.F:12 Paul> sets a breakpoint at line 12 in P2.F. Paul> We would like to contribute some version of both of these to Paul> the public sources. Before doing so, however, we'd like to Paul> solicit comments. What you describe won't help for constructors or destructors, unless "fully qualified" means adding some ad-hoc keyword like "[in-charge]" (as "verbose demangling" does with constructors/destructors). That's actually useable, and I have done that in the past as a hacky workaround for the constructor problem, but I'm not sure if it is the way to go for a "clean" solution. paul