From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25780 invoked by alias); 3 Apr 2008 11:10:13 -0000 Received: (qmail 25762 invoked by uid 22791); 3 Apr 2008 11:10:12 -0000 X-Spam-Check-By: sourceware.org Received: from mx2.snap.net.nz (HELO viper.snap.net.nz) (202.37.101.25) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 03 Apr 2008 11:09:46 +0000 Received: from kahikatea.snap.net.nz (2.60.255.123.dynamic.snap.net.nz [123.255.60.2]) by viper.snap.net.nz (Postfix) with ESMTP id AAAB73D9F1B; Fri, 4 Apr 2008 00:09:43 +1300 (NZDT) Received: by kahikatea.snap.net.nz (Postfix, from userid 1000) id D88578FC6D; Thu, 3 Apr 2008 23:09:30 +1200 (NZST) From: Nick Roberts MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <18420.47850.169206.141581@kahikatea.snap.net.nz> Date: Thu, 03 Apr 2008 11:28:00 -0000 To: Vladimir Prus Cc: gdb-patches@sources.redhat.com Subject: Re: [PATCH, gdb6.8] -break-list doesn't list multiple breakpoints In-Reply-To: References: <47F3946A.3090000@op.pl> <18420.41316.87382.142756@kahikatea.snap.net.nz> X-Mailer: VM 7.19 under Emacs 22.2.50.1 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-04/txt/msg00061.txt.bz2 > > If set individually, the multiple breakpoint locations can be used with > > deleted, ignore, condition and commands. > > To set individual breakpoint on constructor instances, for example, > you need to set breakpoint at address. > > > Why would this not true when the > > location is part of a multiple breakpoint? Is it just due to the > > implementation or a fundamental limitation? > > That's the design of multiple-location breakpoints. You specify the line > or function on which such a breakpoint should be set. GDB that arranges > for the list of locations to automatically include all relevant addresses, > including when shared libraries are loaded and unloaded. Note that while > there's mechanism to enable and disable individual locations, it's a bit > heuristic, so the enable/disable state might not be carried over when > new shared libraries are loaded. > > Allowing the user to manipulate individual locations will interfere with > this automatic updating of location list. I'm not familar with the need to load and unload shared libraries, Gdb just loads them automatically for me. > Furthermore, what is the use case? > For constructors, one is not likely to ever want to do anything with > individual locations. For inlined functions, I don't know why you would > specifically treat one inlined instance, but if you wish, you can always > create a more specific breakpoint, like on address, and do anything. > > Of course, we can provide a command that creates individual breakpoints on > each address matching a specification, and does not do any auto-update of > those breakpoints. If you think such a behaviour will be useful, can you > explain why, and then work on implementing it? I can imagine it might be useful to control the breakpoint locations individually but, in practice I've never needed multiple breakpoints yet. However, if it's not useful then it's probably unlikely that anyone would try to do it in a frontend as you suggested earlier: Yes, but those are not a breakpoints, do it will do a disservice to the existing frontends. In particular, might find it very interesting experience to edit condition of one breakpoint, and having conditions on other breakpoints change. Likewise, changing any properly of location will not work. -- Nick http://www.inet.net.nz/~nickrob