From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14893 invoked by alias); 10 Jan 2008 22:08:26 -0000 Received: (qmail 14883 invoked by uid 22791); 10 Jan 2008 22:08:25 -0000 X-Spam-Check-By: sourceware.org Received: from viper.snap.net.nz (HELO viper.snap.net.nz) (202.37.101.8) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 10 Jan 2008 22:07:54 +0000 Received: from kahikatea.snap.net.nz (160.60.255.123.dynamic.snap.net.nz [123.255.60.160]) by viper.snap.net.nz (Postfix) with ESMTP id 49CE03D9D06 for ; Fri, 11 Jan 2008 11:07:51 +1300 (NZDT) Received: by kahikatea.snap.net.nz (Postfix, from userid 1000) id 53E648FC6D; Fri, 11 Jan 2008 11:07:49 +1300 (NZDT) From: Nick Roberts MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <18310.38708.144719.374963@kahikatea.snap.net.nz> Date: Thu, 10 Jan 2008 22:08:00 -0000 To: gdb-patches@sourceware.org Subject: [BUG:MI] -break-list doesn't list multiple breakpoints X-Mailer: VM 7.19 under Emacs 23.0.50.27 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-01/txt/msg00251.txt.bz2 I have previously mentioned this in http://sourceware.org/ml/gdb-patches/2007-11/msg00276.html breakpoint.c currently has: if (b->loc && (b->loc->next || !b->loc->enabled)) && !ui_out_is_mi_like_p (uiout)) { struct bp_location *loc; int n = 1; for (loc = b->loc; loc; loc = loc->next, ++n) print_one_breakpoint_location (b, loc, n, last_addr); } where presumably the !ui_out_is_mi_like_p (uiout) bit is there because the testsuite failed without it, i.e., so that -break-insert only reports one breakpoint (the CLI command "break" doesn't use print_one_breakpoint_location). Unfortunately -break-list also uses print_one_breakpoint_location which means for a template function used with int and float you get something like: (gdb) -break-list ^done,BreakpointTable={nr_rows="1",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="4",alignment="-1",col_name="enabled",colhdr="Enb"},{width="10",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="",times="0"}]} instead of: (gdb) -break-list ^done,BreakpointTable={nr_rows="1",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="4",alignment="-1",col_name="enabled",colhdr="Enb"},{width="10",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="",times="0"},bkpt={number="1.1",type="",disp="",enabled="y",addr="0x08048776",func="int minimum(int, int)",file="template.cc",fullname="/home/nickrob/C++/template.cc",line="11"},bkpt={number="1.2",type="",disp="",enabled="y",addr="0x0804879f",func="float minimum(float, float)",file="template.cc",fullname="/home/nickrob/C++/template.cc",line="11"}]} So there is currently no way in MI to see these extra breakpoint locations. While it will take a long time to fully migrate Emacs to MI, I can certainly start reducing the dependency on CLI commands like "info break" now. But only if they have full functionality. On a more general note, in Emacs, I just just use "info break" after every user command and will probably just use "-break-list" in the future. I won't use the output of -break-insert, although some front end might be clever enough to do this and that presumably was the intention when the command was written. In that case it might be necessary to include all the locations in a multiple breakpoint in the output. Support for CLI in frontends can only be dropped after MI is fully functional, it makes no sense to to do it before. -- Nick http://www.inet.net.nz/~nickrob