From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17537 invoked by alias); 17 Feb 2006 14:14:16 -0000 Received: (qmail 17527 invoked by uid 22791); 17 Feb 2006 14:14:15 -0000 X-Spam-Check-By: sourceware.org Received: from main.gmane.org (HELO ciao.gmane.org) (80.91.229.2) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 17 Feb 2006 14:14:13 +0000 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1FA6N8-0006mO-2s for gdb@sources.redhat.com; Fri, 17 Feb 2006 15:14:10 +0100 Received: from zigzag.lvk.cs.msu.su ([158.250.17.23]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 17 Feb 2006 15:14:10 +0100 Received: from ghost by zigzag.lvk.cs.msu.su with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 17 Feb 2006 15:14:10 +0100 To: gdb@sources.redhat.com From: Vladimir Prus Subject: Re: MI: output of -break-insert and -break-watch Date: Fri, 17 Feb 2006 14:14:00 -0000 Message-ID: References: <20060217135634.GA18641@nevyn.them.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit User-Agent: KNode/0.8.2 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-02/txt/msg00177.txt.bz2 Daniel Jacobowitz wrote: > On Fri, Feb 17, 2006 at 03:37:21PM +0300, Vladimir Prus wrote: >> >> Hello! >> >> The output of -break-insert and -break-watch currently looks like this: >> >> ^done,bkpt={number="1",...... >> >> and >> >> ^done,wpt={number="2",....... >> >> What is exactly the point of using different field names: "bkpt" and >> "wpt"? This makes it impossible to get the number of set breakpoint in a >> uniform fashion -- I need to have some conditional on the type of >> breakpoint, or add logic that checks if "bkpt" or "wpt" is present in >> reply. > > I don't get it. Why is this a problem? It sounds to me like the only > reason this would be awkward would be limitations of your front end. > If you've done -break-insert you should expect a bkpt response, if > you've done -break-watch you should expect a wpt response. Here's the code I use now to extract breakpoint id from response: int id = -1; if (r.hasField("bkpt")) id = r["bkpt"]["number"].literal().toInt(); else if (r.hasField("wpt")) id = r["wpt"]["number"].literal().toInt(); else if (r.hasField("hw-rwpt")) id = r["hw-rwpt"]["number"].literal().toInt(); And there's also "hw-awpt", and in future there might be "catchpoint" and "fork" and what not. If I only want to extract the *id* of breakpoint, why do I need to write such boilerplate? Or should I write a function that will iterate over all fields of 'r', and check if that field has nested field called 'number'? - Volodya