From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25176 invoked by alias); 26 Mar 2013 06:42:28 -0000 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 Received: (qmail 25132 invoked by uid 89); 26 Mar 2013 06:42:20 -0000 X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_DB,TW_FW autolearn=ham version=3.3.1 Received: from mail-oa0-f48.google.com (HELO mail-oa0-f48.google.com) (209.85.219.48) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Tue, 26 Mar 2013 06:42:16 +0000 Received: by mail-oa0-f48.google.com with SMTP id j1so7111937oag.7 for ; Mon, 25 Mar 2013 23:42:14 -0700 (PDT) X-Received: by 10.60.101.232 with SMTP id fj8mr12560197oeb.28.1364280134820; Mon, 25 Mar 2013 23:42:14 -0700 (PDT) MIME-Version: 1.0 Received: by 10.60.13.133 with HTTP; Mon, 25 Mar 2013 23:41:34 -0700 (PDT) In-Reply-To: <514EEBFF.8090705@redhat.com> References: <514BF736.3070706@mentor.com> <514C3C85.4000704@codesourcery.com> <514EEBFF.8090705@redhat.com> From: Hui Zhu Date: Tue, 26 Mar 2013 14:55:00 -0000 Message-ID: Subject: Re: [PATCH] Fix dprintf work not right if it is pending To: Keith Seitz Cc: Hui Zhu , Yao Qi , gdb-patches ml , Marc Khouzam Content-Type: multipart/mixed; boundary=089e0111b308cf6cc404d8ce3843 X-Virus-Found: No X-SW-Source: 2013-03/txt/msg00961.txt.bz2 --089e0111b308cf6cc404d8ce3843 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1884 Post a new version according to your comments. And add test for it. Thanks, Hui 2013-03-26 Hui Zhu * breakpoint.c (dprintf_re_set): New. (initialize_breakpoint_ops): Set dprintf_breakpoint_ops re_set to dprintf_re_set. 2013-03-26 Hui Zhu * gdb.base/Makefile.in (EXECUTABLES): Add dprintf-pending. (MISCELLANEOUS): Add dprintf-pendshr.sl. * gdb.base/dprintf-pending.c, gdb.base/dprintf-pending.exp: New. On Sun, Mar 24, 2013 at 8:05 PM, Keith Seitz wrote: > On 03/22/2013 04:12 AM, Yao Qi wrote: >>> >>> But if the dprintf is pending. When it reset by function bkpt_re_set, >>> there is not code to code to update extra_string to commands. >>> So I add this code to function update_breakpoint_locations. The issue >>> is fixed. >> >> >> The bug was reported in PR breakpoints/15292: Pending dprintf don't >> work. >> >> We need a test case here, I think, to show pending dprintf doesn't >> work, and it works with your patch applied. >> >> I am wondering whether we need a new breakpoint_ops field >> "parse_extra_string", and use it like: >> >> b->ops->parse_extra_string (b, extra_string); >> >> instead of duplicate the code. > > > I agree: special handling is necessary, but I don't care for either of these > solutions. The original proposal clutters generic breakpoint code with > dprintf-specific handling. As Yao correctly points out, this is what the > breakpoint ops vector is for. > > However, I don't like the idea of adding a new "parse_extra_string" method. > It is far too vague. Parse extra_string when? > > I think the better solution, and one which we already have the > infrastructure for, is to define a dprintf_re_set method in the dprintf's > breakpoint ops, updating the command list whenever a pending breakpoint is > resolved. > > This definitely needs a test. > > Keith --089e0111b308cf6cc404d8ce3843 Content-Type: text/plain; charset=US-ASCII; name="dprintf-pending.txt" Content-Disposition: attachment; filename="dprintf-pending.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_heqp4z880 Content-length: 940 LS0tIGEvZ2RiL2JyZWFrcG9pbnQuYworKysgYi9nZGIvYnJlYWtwb2ludC5j CkBAIC0xMjk2Myw2ICsxMjk2MywxNSBAQCBia3B0X3JlX3NldCAoc3RydWN0 IGJyZWFrcG9pbnQgKmIpCiAgIGJyZWFrcG9pbnRfcmVfc2V0X2RlZmF1bHQg KGIpOwogfQogCitzdGF0aWMgdm9pZAorZHByaW50Zl9yZV9zZXQgKHN0cnVj dCBicmVha3BvaW50ICpiKQoreworICBicmVha3BvaW50X3JlX3NldF9kZWZh dWx0IChiKTsKKworICBpZiAoYi0+ZXh0cmFfc3RyaW5nICE9IE5VTEwpCisg ICAgdXBkYXRlX2RwcmludGZfY29tbWFuZF9saXN0IChiKTsKK30KKwogc3Rh dGljIGludAogYmtwdF9pbnNlcnRfbG9jYXRpb24gKHN0cnVjdCBicF9sb2Nh dGlvbiAqYmwpCiB7CkBAIC0xNjAwMSw3ICsxNjAxMCw3IEBAIGluaXRpYWxp emVfYnJlYWtwb2ludF9vcHMgKHZvaWQpCiAKICAgb3BzID0gJmRwcmludGZf YnJlYWtwb2ludF9vcHM7CiAgICpvcHMgPSBia3B0X2Jhc2VfYnJlYWtwb2lu dF9vcHM7Ci0gIG9wcy0+cmVfc2V0ID0gYmtwdF9yZV9zZXQ7CisgIG9wcy0+ cmVfc2V0ID0gZHByaW50Zl9yZV9zZXQ7CiAgIG9wcy0+cmVzb3VyY2VzX25l ZWRlZCA9IGJrcHRfcmVzb3VyY2VzX25lZWRlZDsKICAgb3BzLT5wcmludF9p dCA9IGJrcHRfcHJpbnRfaXQ7CiAgIG9wcy0+cHJpbnRfbWVudGlvbiA9IGJr cHRfcHJpbnRfbWVudGlvbjsK --089e0111b308cf6cc404d8ce3843 Content-Type: text/plain; charset=US-ASCII; name="dprintf-pending-test.txt" Content-Disposition: attachment; filename="dprintf-pending-test.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_heqp4za01 Content-length: 7902 LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9NYWtlZmlsZS5pbgorKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL01ha2VmaWxlLmluCkBAIC0xMCw3 ICsxMCw4IEBAIEVYRUNVVEFCTEVTID0gYTItcnVuIGFkdmFuY2UgYWxsLXR5 cGVzIGEKIAljYWxsLXN0cnMgY2FsbGV4aXQgY2FsbGZ1bmNzIGNhbGxmd21h bGwgY2hhcnNldCBjaGVja3BvaW50IFwKIAljaG5nLXN5bXMgY29kZV9lbGlt MSBjb2RlX2VsaW0yIGNvbW1hbmRzIGNvbXBpbGVyIGNvbXBsZXggXAogCWNv bmRicmVhayBjb25zZWN1dGl2ZSBjb25zdHZhcnMgY29yZW1ha2VyIGN1cnNh bCBjdmV4cHIgXAotCWRieC10ZXN0IGRlbCBkaXNhc20tZW5kLWN1IGRpc3Bs YXkgZHVtcCBkdXAtc2VjdCBkdXAtc2VjdC5kZWJ1ZyBcCisJZGJ4LXRlc3Qg ZGVsIGRpc2FzbS1lbmQtY3UgZGlzcGxheSBkcHJpbnRmLXBlbmRpbmcgZHVt cCBkdXAtc2VjdCBcCisJZHVwLXNlY3QuZGVidWcgXAogCWR1cC1zZWN0LnN0 cmlwcGVkIGVuZGluZy1ydW4gZXhlY2QtcHJvZyBleHBhbmQtcHN5bXRhYnMg ZXhwcnMgXAogCWZpbGVpbyBmaW5kIGZpbmlzaCBmaXhzZWN0aW9uIGZsb2F0 IGZvbGwtZXhlYyBmb2xsLWZvcmsgZm9sbC12Zm9yayBcCiAJZnJhbWUtYXJn cyBmcmVlYnBjbWQgZnVsbG5hbWUgZnVuY2FyZ3MgZ2NvcmUgXApAQCAtNDQs NyArNDUsNyBAQCBFWEVDVVRBQkxFUyA9IGEyLXJ1biBhZHZhbmNlIGFsbC10 eXBlcyBhCiAJd2NoYXIgd2hhdGlzIHdoYXRpcy1leHAgY2F0Y2gtc3lzY2Fs bCBcCiAJcHIxMDE3OSBnbnVfdmVjdG9yCiAKLU1JU0NFTExBTkVPVVMgPSBj b3JlbW1hcC5kYXRhIC4uL2Zvb2Jhci5iYXogZml4c2VjdHNoci5zbCBcCitN SVNDRUxMQU5FT1VTID0gY29yZW1tYXAuZGF0YSBkcHJpbnRmLXBlbmRzaHIu c2wgLi4vZm9vYmFyLmJheiBmaXhzZWN0c2hyLnNsIFwKIAlwZW5kc2hyLnNs IHNocmVsb2MxLnNsIHNocmVsb2MyLnNsIHR3aWNlLXRtcC5jIFwKIAlzaHIx LnNsIHNocjIuc2wgc29saWJfc2wuc2wgc29saWIxLnNsIHNvbGliMi5zbCBc CiAJdW5sb2Fkc2hyLnNsIHVubG9hZHNocjIuc2wgd2F0Y2hwb2ludC1zb2xp Yi1zaHIuc2wgXAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvZHByaW50Zi1wZW5kaW5nLmMKQEAgLTAsMCArMSwzMSBAQAor LyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1 Z2dlci4KKworICAgQ29weXJpZ2h0IDIwMDQtMjAxMyBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBM aWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg Ki8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisKK2ludCBrID0gMDsKKworZXh0 ZXJuIHZvaWQgcGVuZGZ1bmMgKGludCB4KTsKKworaW50IG1haW4oKQorewor ICBwZW5kZnVuYyAoMyk7IC8qIGJyZWFrIG1haW4gaGVyZSAqLworICBwZW5k ZnVuYyAoNCk7CisgIGsgPSAxOworICBwZW5kZnVuYyAoMyk7CisgIHJldHVy biAwOworfQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvZHByaW50Zi1wZW5kaW5nLmV4cApAQCAtMCwwICsxLDkxIEBACisj ICAgQ29weXJpZ2h0IDIwMTMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKworaWYge1tza2lwX3NobGliX3Rl c3RzXX0geworICAgIHJldHVybiAwCit9CisKK3NldCB0ZXN0ZmlsZSAiZHBy aW50Zi1wZW5kaW5nIgorc2V0IGxpYmZpbGUgImRwcmludGYtcGVuZHNociIK K3NldCBzcmNmaWxlICR0ZXN0ZmlsZS5jCitzZXQgbGlic3JjICAkc3JjZGly LyRzdWJkaXIvJGxpYmZpbGUuYworc2V0IGJpbmZpbGUgJG9iamRpci8kc3Vi ZGlyLyR0ZXN0ZmlsZQorc2V0IGxpYl9zbCAgJG9iamRpci8kc3ViZGlyLyRs aWJmaWxlLnNsCisKK3NldCBsaWJfb3B0cyAgZGVidWcKK3NldCBleGVjX29w dHMgW2xpc3QgZGVidWcgc2hsaWI9JGxpYl9zbF0KKworaWYgW2dldF9jb21w aWxlcl9pbmZvXSB7CisgICAgcmV0dXJuIC0xCit9CisKK2lmIHsgW2dkYl9j b21waWxlX3NobGliICRsaWJzcmMgJGxpYl9zbCAkbGliX29wdHNdICE9ICIi CisgICAgIHx8IFtnZGJfY29tcGlsZSAkc3JjZGlyLyRzdWJkaXIvJHNyY2Zp bGUgJGJpbmZpbGUgZXhlY3V0YWJsZSAkZXhlY19vcHRzXSAhPSAiIn0gewor ICAgIHVudGVzdGVkICJDb3VsZCBub3QgY29tcGlsZSBlaXRoZXIgJGxpYnNy YyBvciAkc3JjZGlyLyRzdWJkaXIvJHNyY2ZpbGUuIgorICAgIHJldHVybiAt MQorfQorCisjIFN0YXJ0IHdpdGggYSBmcmVzaCBnZGIuCisKK2dkYl9leGl0 CitnZGJfc3RhcnQKK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1 YmRpcgorCitnZGJfdGVzdF9tdWx0aXBsZSAiZHByaW50ZiBwZW5kZnVuYzEs IFwieD0lZFxcblwiLCB4IiAic2V0IHBlbmRpbmcgZHByaW50ZiIgeworICAg ICAtcmUgIi4qTWFrZSBkcHJpbnRmIHBlbmRpbmcuKnkgb3IgXFxcW25cXFxd LiAkIiB7CisJICAgIGdkYl90ZXN0ICJ5IiAiRHByaW50Zi4qcGVuZGZ1bmMx LipwZW5kaW5nLiIgInNldCBwZW5kaW5nIGRwcmludGYgKHdpdGhvdXQgc3lt Ym9scykiCisgICAgIH0KK30KKworZ2RiX3Rlc3QgImluZm8gYnJlYWsiIFwK KyAgICAiTnVtICAgICBUeXBlXFsgXF0rRGlzcCBFbmIgQWRkcmVzc1xbIFxd K1doYXQuKgorXFswLTlcXStcW1x0IFxdK2RwcmludGYuKmtlZXAgeS4qUEVO RElORy4qcGVuZGZ1bmMxLioiIFwKKyJzaW5nbGUgcGVuZGluZyBkcHJpbnRm IGluZm8gKHdpdGhvdXQgc3ltYm9scykiCisKK2dkYl9sb2FkICR7YmluZmls ZX0KK2dkYl9sb2FkX3NobGlicyAkbGliX3NsCisKK2dkYl9ydW5fY21kCisK K2dkYl90ZXN0ICIiICIuKng9My4qeD00Lip4PTMuKiIgInJ1biB0byByZXNv bHZlZCBkcHJpbnRmICh3aXRob3V0IHN5bWJvbHMpIgorCisjIFJlc3RhcnQg d2l0aCBhIGZyZXNoIGdkYi4KKworZ2RiX2V4aXQKK2dkYl9zdGFydAorZ2Ri X3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisKK2dkYl9sb2Fk ICR7YmluZmlsZX0KK2dkYl9sb2FkX3NobGlicyAkbGliX3NsCisKKyMKKyMg VGVzdCBzZXR0aW5nLCBxdWVyeWluZywgYW5kIG1vZGlmeWluZyBwZW5kaW5n IGJyZWFrcG9pbnRzCisjCisKK2dkYl90ZXN0X211bHRpcGxlICJkcHJpbnRm IHBlbmRmdW5jMSwgXCJ4PSVkXFxuXCIsIHgiICJzZXQgcGVuZGluZyBkcHJp bnRmIiB7CisgICAgIC1yZSAiLipNYWtlIGRwcmludGYgcGVuZGluZy4qeSBv ciBcXFxbblxcXF0uICQiIHsKKwkgICAgZ2RiX3Rlc3QgInkiICJEcHJpbnRm LipwZW5kZnVuYzEuKnBlbmRpbmcuIiAic2V0IHBlbmRpbmcgZHByaW50ZiIK KyAgICAgfQorfQorCitnZGJfdGVzdCAiaW5mbyBicmVhayIgXAorICAgICJO dW0gICAgIFR5cGVcWyBcXStEaXNwIEVuYiBBZGRyZXNzXFsgXF0rV2hhdC4q CitcWzAtOVxdK1xbXHQgXF0rZHByaW50Zi4qa2VlcCB5LipQRU5ESU5HLipw ZW5kZnVuYzEuKiIgXAorInNpbmdsZSBwZW5kaW5nIGRwcmludGYgaW5mbyAo d2l0aG91dCBzeW1ib2xzKSIKKworZ2RiX3J1bl9jbWQKKworZ2RiX3Rlc3Qg IiIgIi4qeD0zLip4PTQuKng9My4qIiAicnVuIHRvIHJlc29sdmVkIGRwcmlu dGYiCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9kcHJpbnRmLXBlbmRzaHIuYwpAQCAtMCwwICsxLDI4IEBACisvKiBUaGlz IHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgor CisgICBDb3B5cmlnaHQgMjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor ICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1 ZGUgPHN0ZGlvLmg+CisKK3ZvaWQgcGVuZGZ1bmMxIChpbnQgeCkKK3sKKyAg aW50IHkgPSB4ICsgNDsKK30KKwordm9pZCBwZW5kZnVuYyAoaW50IHgpCit7 CisgIHBlbmRmdW5jMSAoeCk7Cit9Cg== --089e0111b308cf6cc404d8ce3843--