From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2105 invoked by alias); 23 May 2011 09:39:31 -0000 Received: (qmail 2095 invoked by uid 22791); 23 May 2011 09:39:29 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,TW_EV,TW_VP X-Spam-Check-By: sourceware.org Received: from mail-vw0-f41.google.com (HELO mail-vw0-f41.google.com) (209.85.212.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 23 May 2011 09:39:15 +0000 Received: by vws4 with SMTP id 4so5062726vws.0 for ; Mon, 23 May 2011 02:39:14 -0700 (PDT) Received: by 10.220.179.12 with SMTP id bo12mr675536vcb.33.1306143554066; Mon, 23 May 2011 02:39:14 -0700 (PDT) MIME-Version: 1.0 Received: by 10.220.188.139 with HTTP; Mon, 23 May 2011 02:38:54 -0700 (PDT) In-Reply-To: References: From: Kevin Pouget Date: Mon, 23 May 2011 09:39:00 -0000 Message-ID: Subject: Re: [PATCH] Handle multiple breakpoint hits in Python interface To: Tom Tromey Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=90e6ba4fc42090da2a04a3ee3ea0 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: 2011-05/txt/msg00510.txt.bz2 --90e6ba4fc42090da2a04a3ee3ea0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2576 Hello, On Thu, May 19, 2011 at 2:34 PM, Tom Tromey wrote: >>>>>> "Kevin" =3D=3D Kevin Pouget writes: > > Kevin> following the discussion on > Kevin> http://sourceware.org/ml/gdb/2011-04/msg00131.html, here is a patch > Kevin> which allows Python scripts to know that several breakpoints (with= the > Kevin> same PC) where hit during the "stop" event callback. > Kevin> What do you think about it ? > > It seems like a reasonable idea. > > I think we can't just replace the "breakpoint" attribute with > "breakpoints", since this is going to ship in 7.3, and we don't want to > break backward compatibility. I put back the breakpoint attribute in addition to the "breakpoints" sequence and added in the documentation that it was "legacy support", is it okay for you? > > This still needs a doc review. > > Kevin> +@defivar BreakpointEvent breakpoints > Kevin> +A tuple containing references to the breakpoints (type > > Not technically a tuple, the code makes a list. =A0Saying "sequence" would > be ok. fixed > Kevin> +=A0 /*Add any breakpoint set at this location to the list.=A0 */ > > Space after the first "*". fixed > Kevin> +=A0=A0=A0=A0=A0=A0=A0=A0=A0 if (list =3D=3D NULL) > Kevin> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 list =3D PyList_New (0); > > You must check for failure here. fixed > Kevin> +=A0=A0=A0=A0=A0=A0=A0=A0=A0 if (PyList_Append (list, (PyObject *) > current_bs-> breakpoint_at->py_bp_object)) > Kevin> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto fail; > > In the fail case, nothing frees 'list'. fixed I hope this patch will address all your concerns, cordially, Kevin -- 2011-04-22 Kevin Pouget Handle multiple breakpoint hits in Python interface: * gdb.texinfo (Events In Python): Indicate that multiple breakpoint may have been hit and rename the variable to breakpoints. 2011-04-22 Kevin Pouget Handle multiple breakpoint hits in Python interface: * python/py-bpevent.c (create_breakpoint_event_object): Rename C/Python variable to breakpoints. * python/py-stopevent.c (emit_stop_event): Return a Python tuple of bps instead of single breakpoint. Fix some space typos. * python/py-stopevent.c (create_breakpoint_event_object): Rename variable to breakpoints. 2011-04-22 Kevin Pouget Handle multiple breakpoint hits in Python interface: * gdb.python/py-events.exp: Set a duplicate breakpoint and check its presence. * gdb.python/py-events.py (breakpoint_stop_handler): Browse all the breakpoint hits. --90e6ba4fc42090da2a04a3ee3ea0 Content-Type: text/plain; charset=US-ASCII; name="multiple-bps.txt" Content-Disposition: attachment; filename="multiple-bps.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_go1l6neh0 Content-length: 8296 ZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dk Yi50ZXhpbmZvCmluZGV4IDU4NGE1MjAuLjg0ZDc5MDAgMTAwNjQ0Ci0tLSBh L2dkYi9kb2MvZ2RiLnRleGluZm8KKysrIGIvZ2RiL2RvYy9nZGIudGV4aW5m bwpAQCAtMjIxNTcsMTMgKzIyMTU3LDE3IEBAIHRoZSBAdmFsdWV7R0RCTn0g Y29tbWFuZCBwcm9tcHQuCiAKIEFsc28gZW1pdHMgIEBjb2Rle2dkYi5CcmVh a3BvaW50RXZlbnR9IHdoaWNoIGV4dGVuZHMgQGNvZGV7Z2RiLlN0b3BFdmVu dH0uCiAKLUBjb2Rle2dkYi5CcmVha3BvaW50RXZlbnR9IGV2ZW50IGluZGlj YXRlcyB0aGF0IGEgYnJlYWtwb2ludCBoYXMgYmVlbiBoaXQsIGFuZAotaGFz IHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczoKK0Bjb2Rle2dkYi5CcmVha3Bv aW50RXZlbnR9IGV2ZW50IGluZGljYXRlcyB0aGF0IG9uZSBvciBzZXZlcmFs IGJyZWFrcG9pbnRzIGhhdmUKK2JlZW4gaGl0LCBhbmQgaGFzIHRoZSBmb2xs b3dpbmcgYXR0cmlidXRlczoKIAogQHRhYmxlIEBjb2RlCi1AZGVmaXZhciBC cmVha3BvaW50RXZlbnQgYnJlYWtwb2ludAotQSByZWZlcmVuY2UgdG8gdGhl IGJyZWFrcG9pbnQgdGhhdCB3YXMgaGl0IG9mIHR5cGUgQGNvZGV7Z2RiLkJy ZWFrcG9pbnR9LgorQGRlZml2YXIgQnJlYWtwb2ludEV2ZW50IGJyZWFrcG9p bnRzCitBIHNlcXVlbmNlIGNvbnRhaW5pbmcgcmVmZXJlbmNlcyB0byBhbGwg dGhlIGJyZWFrcG9pbnRzICh0eXBlIAorQGNvZGV7Z2RiLkJyZWFrcG9pbnR9 KSB0aGF0IHdlcmUgaGl0LgogQHhyZWZ7QnJlYWtwb2ludHMgSW4gUHl0aG9u fSwgZm9yIGRldGFpbHMgb2YgdGhlIEBjb2Rle2dkYi5CcmVha3BvaW50fSBv YmplY3QuCitAZGVmaXZhciBCcmVha3BvaW50RXZlbnQgYnJlYWtwb2ludAor QSByZWZlcmVuY2UgdG8gdGhlIGZpcnN0IGJyZWFrcG9pbnQgdGhhdCB3YXMg aGl0IG9mIHR5cGUgQGNvZGV7Z2RiLkJyZWFrcG9pbnR9LgorKExlZ2FjeSBz dXBwb3J0LikKIEBlbmQgZGVmaXZhcgogQGVuZCB0YWJsZQogCmRpZmYgLS1n aXQgYS9nZGIvcHl0aG9uL3B5LWJwZXZlbnQuYyBiL2dkYi9weXRob24vcHkt YnBldmVudC5jCmluZGV4IGM3Zjc5NjUuLmYzN2IyNDggMTAwNjQ0Ci0tLSBh L2dkYi9weXRob24vcHktYnBldmVudC5jCisrKyBiL2dkYi9weXRob24vcHkt YnBldmVudC5jCkBAIC0yNCw3ICsyNCw3IEBAIHN0YXRpYyBQeVR5cGVPYmpl Y3QgYnJlYWtwb2ludF9ldmVudF9vYmplY3RfdHlwZTsKIC8qIENyZWF0ZSBh bmQgaW5pdGlhbGl6ZSBhIEJyZWFrcG9pbnRFdmVudCBvYmplY3QuICAqLwog CiBQeU9iamVjdCAqCi1jcmVhdGVfYnJlYWtwb2ludF9ldmVudF9vYmplY3Qg KFB5T2JqZWN0ICpicmVha3BvaW50KQorY3JlYXRlX2JyZWFrcG9pbnRfZXZl bnRfb2JqZWN0IChQeU9iamVjdCAqYnJlYWtwb2ludF9saXN0LCBQeU9iamVj dCAqZmlyc3RfYnApCiB7CiAgIFB5T2JqZWN0ICpicmVha3BvaW50X2V2ZW50 X29iaiA9CiAgICAgICBjcmVhdGVfc3RvcF9ldmVudF9vYmplY3QgKCZicmVh a3BvaW50X2V2ZW50X29iamVjdF90eXBlKTsKQEAgLTM0LDcgKzM0LDExIEBA IGNyZWF0ZV9icmVha3BvaW50X2V2ZW50X29iamVjdCAoUHlPYmplY3QgKmJy ZWFrcG9pbnQpCiAKICAgaWYgKGV2cHlfYWRkX2F0dHJpYnV0ZSAoYnJlYWtw b2ludF9ldmVudF9vYmosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJi cmVha3BvaW50IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtw b2ludCkgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9i cCkgPCAwKQorICAgIGdvdG8gZmFpbDsKKyAgaWYgKGV2cHlfYWRkX2F0dHJp YnV0ZSAoYnJlYWtwb2ludF9ldmVudF9vYmosCisgICAgICAgICAgICAgICAg ICAgICAgICAgICJicmVha3BvaW50cyIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrcG9pbnRfbGlzdCkgPCAwKQogICAgIGdvdG8gZmFpbDsK IAogICByZXR1cm4gYnJlYWtwb2ludF9ldmVudF9vYmo7CmRpZmYgLS1naXQg YS9nZGIvcHl0aG9uL3B5LXN0b3BldmVudC5jIGIvZ2RiL3B5dGhvbi9weS1z dG9wZXZlbnQuYwppbmRleCAxMjJmZTZiLi4xNWZmYTc0IDEwMDY0NAotLS0g YS9nZGIvcHl0aG9uL3B5LXN0b3BldmVudC5jCisrKyBiL2dkYi9weXRob24v cHktc3RvcGV2ZW50LmMKQEAgLTQ1LDE4ICs0NSwzNiBAQCBpbnQKIGVtaXRf c3RvcF9ldmVudCAoc3RydWN0IGJwc3RhdHMgKmJzLCBlbnVtIHRhcmdldF9z aWduYWwgc3RvcF9zaWduYWwpCiB7CiAgIFB5T2JqZWN0ICpzdG9wX2V2ZW50 X29iaiA9IE5VTEw7IC8qIEFwcGVhc2UgR0NDIHdhcm5pbmcuICAqLworICBQ eU9iamVjdCAqbGlzdCA9IE5VTEw7CisgIFB5T2JqZWN0ICpmaXJzdF9icCA9 IE5VTEw7CisgIHN0cnVjdCBicHN0YXRzICpjdXJyZW50X2JzOwogCiAgIGlm IChldnJlZ3B5X25vX2xpc3RlbmVyc19wIChnZGJfcHlfZXZlbnRzLnN0b3Ap KQogICAgIHJldHVybiAwOwogCi0gIGlmIChicyAmJiBicy0+YnJlYWtwb2lu dF9hdAotICAgICAgJiYgYnMtPmJyZWFrcG9pbnRfYXQtPnB5X2JwX29iamVj dCkKKyAgLyogQWRkIGFueSBicmVha3BvaW50IHNldCBhdCB0aGlzIGxvY2F0 aW9uIHRvIHRoZSBsaXN0LiAgKi8KKyAgZm9yIChjdXJyZW50X2JzID0gYnM7 IGN1cnJlbnRfYnMgIT0gTlVMTDsgY3VycmVudF9icyA9IGN1cnJlbnRfYnMt Pm5leHQpCiAgICAgewotICAgICAgc3RvcF9ldmVudF9vYmogPSBjcmVhdGVf YnJlYWtwb2ludF9ldmVudF9vYmplY3QgKChQeU9iamVjdCAqKSBicwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0+YnJlYWtwb2ludF9hdAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+cHlfYnBfb2Jq ZWN0KTsKKyAgICAgIGlmIChjdXJyZW50X2JzLT5icmVha3BvaW50X2F0Cisg ICAgICAgICAgJiYgY3VycmVudF9icy0+YnJlYWtwb2ludF9hdC0+cHlfYnBf b2JqZWN0KQorICAgICAgICB7CisgICAgICAgICAgaWYgKGxpc3QgPT0gTlVM TCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgbGlzdCA9IFB5TGlz dF9OZXcgKDApOworICAgICAgICAgICAgICBpZiAoIWxpc3QpCisgICAgICAg ICAgICAgICAgZ290byBmYWlsOworICAgICAgICAgICAgfQorICAgICAgICAg IGlmIChQeUxpc3RfQXBwZW5kIChsaXN0LCAoUHlPYmplY3QgKikgY3VycmVu dF9icy0+YnJlYWtwb2ludF9hdC0+cHlfYnBfb2JqZWN0KSkgCisgICAgICAg ICAgICBnb3RvIGZhaWw7CisgICAgICAgICAgaWYgKGZpcnN0X2JwID09IE5V TEwpCisgICAgICAgICAgICBmaXJzdF9icCA9IChQeU9iamVjdCAqKSBjdXJy ZW50X2JzLT5icmVha3BvaW50X2F0LT5weV9icF9vYmplY3Q7CisgICAgICAg IH0KKyAgICB9CisgIGlmIChsaXN0ICE9IE5VTEwpCisgICAgeworICAgICAg c3RvcF9ldmVudF9vYmogPSBjcmVhdGVfYnJlYWtwb2ludF9ldmVudF9vYmpl Y3QgKGxpc3QsIGZpcnN0X2JwKTsKICAgICAgIGlmICghc3RvcF9ldmVudF9v YmopCi0JZ290byBmYWlsOworICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQog CiAgIC8qIENoZWNrIGlmIHRoZSBzaWduYWwgaXMgIlNpZ25hbCAwIiBvciAi VHJhY2UvYnJlYWtwb2ludCB0cmFwIi4gICovCkBAIC03NSwxMyArOTMsMTQg QEAgZW1pdF9zdG9wX2V2ZW50IChzdHJ1Y3QgYnBzdGF0cyAqYnMsIGVudW0g dGFyZ2V0X3NpZ25hbCBzdG9wX3NpZ25hbCkKICAgICB7CiAgICAgICBzdG9w X2V2ZW50X29iaiA9IGNyZWF0ZV9zdG9wX2V2ZW50X29iamVjdCAoJnN0b3Bf ZXZlbnRfb2JqZWN0X3R5cGUpOwogICAgICAgaWYgKCFzdG9wX2V2ZW50X29i aikKLQlnb3RvIGZhaWw7CisgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAK ICAgcmV0dXJuIGV2cHlfZW1pdF9ldmVudCAoc3RvcF9ldmVudF9vYmosIGdk Yl9weV9ldmVudHMuc3RvcCk7CiAKLSAgZmFpbDoKLSAgIHJldHVybiAtMTsK KyBmYWlsOgorICBQeV9YREVDUkVGKGxpc3QpOworICByZXR1cm4gLTE7CiB9 CiAKIEdEQlBZX05FV19FVkVOVF9UWVBFIChzdG9wLApkaWZmIC0tZ2l0IGEv Z2RiL3B5dGhvbi9weS1zdG9wZXZlbnQuaCBiL2dkYi9weXRob24vcHktc3Rv cGV2ZW50LmgKaW5kZXggNTJmMzUxMS4uODVhYzRkMyAxMDA2NDQKLS0tIGEv Z2RiL3B5dGhvbi9weS1zdG9wZXZlbnQuaAorKysgYi9nZGIvcHl0aG9uL3B5 LXN0b3BldmVudC5oCkBAIC0yOCw3ICsyOCw4IEBAIGV4dGVybiB2b2lkIHN0 b3BfZXZweV9kZWFsbG9jIChQeU9iamVjdCAqc2VsZik7CiBleHRlcm4gaW50 IGVtaXRfc3RvcF9ldmVudCAoc3RydWN0IGJwc3RhdHMgKmJzLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVudW0gdGFyZ2V0X3NpZ25hbCBzdG9w X3NpZ25hbCk7CiAKLWV4dGVybiBQeU9iamVjdCAqY3JlYXRlX2JyZWFrcG9p bnRfZXZlbnRfb2JqZWN0IChQeU9iamVjdCAqYnJlYWtwb2ludCk7CitleHRl cm4gUHlPYmplY3QgKmNyZWF0ZV9icmVha3BvaW50X2V2ZW50X29iamVjdCAo UHlPYmplY3QgKmJyZWFrcG9pbnRfbGlzdCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqZmly c3RfYnApOwogCiBleHRlcm4gUHlPYmplY3QgKmNyZWF0ZV9zaWduYWxfZXZl bnRfb2JqZWN0IChlbnVtIHRhcmdldF9zaWduYWwgc3RvcF9zaWduYWwpOwog CmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZXZl bnRzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1ldmVudHMu ZXhwCmluZGV4IGU1ZDZkYWYuLjhlZmYxNjUgMTAwNjQ0Ci0tLSBhL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1ldmVudHMuZXhwCisrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1ldmVudHMuZXhwCkBAIC00NSwxMiAr NDUsMTUgQEAgaWYgIVtydW50b19tYWluIF0gdGhlbiB7CiBnZGJfdGVzdCAi VGVzdF9FdmVudHMiICJFdmVudCB0ZXN0ZXJzIHJlZ2lzdGVyZWQuIgogCiBn ZGJfYnJlYWtwb2ludCAiZmlyc3QiCitnZGJfYnJlYWtwb2ludCAiZmlyc3Qi CiAKICMgVGVzdCBjb250aW51ZSBldmVudCBhbmQgYnJlYWtwb2ludCBzdG9w IGV2ZW50CiBnZGJfdGVzdCAiY29udGludWUiICIuKmV2ZW50IHR5cGU6IGNv bnRpbnVlLioKIC4qZXZlbnQgdHlwZTogc3RvcC4qCiAuKnN0b3AgcmVhc29u OiBicmVha3BvaW50LioKKy4qZmlyc3QgYnJlYWtwb2ludCBudW1iZXI6IDIu KgogLipicmVha3BvaW50IG51bWJlcjogMi4qCisuKmJyZWFrcG9pbnQgbnVt YmVyOiAzLioKIGFsbCB0aHJlYWRzIHN0b3BwZWQiCiAKICN0ZXN0IGV4aXRl ZCBldmVudC4KZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS1ldmVudHMucHkgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt ZXZlbnRzLnB5CmluZGV4IDlmMDViOWYuLjEwYWVhNGYgMTAwNjQ0Ci0tLSBh L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1ldmVudHMucHkKKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWV2ZW50cy5weQpAQCAtMzEs NyArMzEsOSBAQCBkZWYgYnJlYWtwb2ludF9zdG9wX2hhbmRsZXIgKGV2ZW50 KToKICAgICAgICAgcHJpbnQgImV2ZW50IHR5cGU6IHN0b3AiCiAgICAgaWYg KGlzaW5zdGFuY2UgKGV2ZW50LCBnZGIuQnJlYWtwb2ludEV2ZW50KSk6CiAg ICAgICAgIHByaW50ICJzdG9wIHJlYXNvbjogYnJlYWtwb2ludCIKLSAgICAg ICAgcHJpbnQgImJyZWFrcG9pbnQgbnVtYmVyOiAlcyIgJSAoZXZlbnQuYnJl YWtwb2ludC5udW1iZXIpCisgICAgICAgIHByaW50ICJmaXJzdCBicmVha3Bv aW50IG51bWJlcjogJXMiICUgKGV2ZW50LmJyZWFrcG9pbnQubnVtYmVyKQor ICAgICAgICBmb3IgYnAgaW4gZXZlbnQuYnJlYWtwb2ludHM6CisgICAgICAg IAlwcmludCAiYnJlYWtwb2ludCBudW1iZXI6ICVzIiAlIChicC5udW1iZXIp CiAgICAgICAgIGlmICggZXZlbnQuaW5mZXJpb3JfdGhyZWFkIGlzIG5vdCBO b25lKSA6CiAgICAgICAgICAgICBwcmludCAidGhyZWFkIG51bTogJXMiICUg KGV2ZW50LmluZmVyaW9yX3RocmVhZC5udW0pOwogICAgICAgICBlbHNlOgo= --90e6ba4fc42090da2a04a3ee3ea0--