From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24180 invoked by alias); 23 Apr 2013 15:45:02 -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 24165 invoked by uid 89); 23 Apr 2013 15:45:01 -0000 X-Spam-SWARE-Status: No, score=-3.0 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,SPF_PASS autolearn=ham version=3.3.1 Received: from mail-oa0-f42.google.com (HELO mail-oa0-f42.google.com) (209.85.219.42) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Tue, 23 Apr 2013 15:45:00 +0000 Received: by mail-oa0-f42.google.com with SMTP id i10so715372oag.29 for ; Tue, 23 Apr 2013 08:44:59 -0700 (PDT) X-Received: by 10.60.125.41 with SMTP id mn9mr5099716oeb.84.1366731899009; Tue, 23 Apr 2013 08:44:59 -0700 (PDT) MIME-Version: 1.0 Received: by 10.60.13.133 with HTTP; Tue, 23 Apr 2013 08:44:18 -0700 (PDT) In-Reply-To: <8738wpd3qe.fsf@fleche.redhat.com> References: <1361192891-29341-1-git-send-email-yao@codesourcery.com> <8738wpd3qe.fsf@fleche.redhat.com> From: Hui Zhu Date: Wed, 24 Apr 2013 01:24:00 -0000 Message-ID: Subject: Re: [RFC] PR 15075 dprintf interferes with "next" To: Tom Tromey Cc: Yao Qi , gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=047d7b343d9a57ff4404db091128 X-Virus-Found: No X-SW-Source: 2013-04/txt/msg00709.txt.bz2 --047d7b343d9a57ff4404db091128 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 2141 On Fri, Feb 22, 2013 at 12:35 AM, Tom Tromey wrote: >>>>>> "Yao" == Yao Qi writes: > > Yao> The printf stuff is implemented as command, it is convenient to move > Yao> them to the target side. I tried to change the bpstat saying that > Yao> "don't stop", but the command can't be executed. We have to keep > Yao> bpstat saying that "stop" for dprintf. I also thought about Tom's > Yao> suggestion about Python "Breakpoint.stop" API, but "Breakpoint.stop" > Yao> acts as condition instead of command, so I don't go that way. > > Pedro pointed out that 'stop' runs too early -- it makes "cond" not work > on a dprintf. (BTW if there is no test for this, there should be... ) > > But, why not just do the work just after the condition is evaluated? > For example, it could be done with special handling in > bpstat_check_breakpoint_conditions, or by introducing a new > check_condition breakpoint_ops method, with the dprintf method calling > the super method before proceeding to "printf" and then returning 0. > > I tend to think that the "commands" approach is just not a good one. > > Tom Hi Tom, I update this patch according to your comments: Add after_cond to breakpoint_ops and let bpstat_stop_status call it after cond check. Then add normal code to base_breakpoint_after_cond handle setup of other breakpoints and set dprintf special code to dprintf_after_cond that do print work. And I also updated test for this change. Please help me review it. Thanks, Hui 2013-04-23 Yao Qi Hui Zhu PR gdb/15075 * breakpoint.c (bpstat_stop_status): Call b->ops->after_cond. (update_dprintf_command_list): Don't append "continue" command to the command of dprintf breakpoint. (base_breakpoint_after_cond): New. (base_breakpoint_ops): Add base_breakpoint_after_cond. (dprintf_after_cond): New. (initialize_breakpoint_ops): Set dprintf_after_cond. * breakpoint.h (breakpoint_ops): Add after_cond. 2013-04-23 Hui Zhu PR gdb/15075 * gdb.base/dprintf.exp: Remove "continue" from "info breakpoint" test. --047d7b343d9a57ff4404db091128 Content-Type: text/plain; charset=US-ASCII; name="dprintf-continue.txt" Content-Disposition: attachment; filename="dprintf-continue.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hfv8tvk00 Content-length: 5055 LS0tIGEvZ2RiL2JyZWFrcG9pbnQuYworKysgYi9nZGIvYnJlYWtwb2ludC5j CkBAIC01Mjk2LDEzICs1Mjk2LDcgQEAgYnBzdGF0X3N0b3Bfc3RhdHVzIChz dHJ1Y3QgYWRkcmVzc19zcGFjZQogCQkgICAgYi0+ZW5hYmxlX3N0YXRlID0g YnBfZGlzYWJsZWQ7CiAJCSAgcmVtb3ZlZF9hbnkgPSAxOwogCQl9Ci0JICAg ICAgaWYgKGItPnNpbGVudCkKLQkJYnMtPnByaW50ID0gMDsKLQkgICAgICBi cy0+Y29tbWFuZHMgPSBiLT5jb21tYW5kczsKLQkgICAgICBpbmNyZWZfY291 bnRlZF9jb21tYW5kX2xpbmUgKGJzLT5jb21tYW5kcyk7Ci0JICAgICAgaWYg KGNvbW1hbmRfbGluZV9pc19zaWxlbnQgKGJzLT5jb21tYW5kcwotCQkJCQkg ID8gYnMtPmNvbW1hbmRzLT5jb21tYW5kcyA6IE5VTEwpKQotCQlicy0+cHJp bnQgPSAwOworCSAgICAgIGItPm9wcy0+YWZ0ZXJfY29uZCAoYnMpOwogCSAg ICB9CiAKIAl9CkBAIC04OTYwLDI1ICs4OTU0LDE2IEBAIHVwZGF0ZV9kcHJp bnRmX2NvbW1hbmRfbGlzdCAoc3RydWN0IGJyZWEKIAkJICAgIF8oIkludmFs aWQgZHByaW50ZiBzdHlsZS4iKSk7CiAKICAgZ2RiX2Fzc2VydCAocHJpbnRm X2xpbmUgIT0gTlVMTCk7Ci0gIC8qIE1hbnVmYWN0dXJlIGEgcHJpbnRmL2Nv bnRpbnVlIHNlcXVlbmNlLiAgKi8KKyAgLyogTWFudWZhY3R1cmUgYSBwcmlu dGYgc2VxdWVuY2UuICAqLwogICB7Ci0gICAgc3RydWN0IGNvbW1hbmRfbGlu ZSAqcHJpbnRmX2NtZF9saW5lLCAqY29udF9jbWRfbGluZSA9IE5VTEw7Ci0K LSAgICBpZiAoc3RyY21wIChkcHJpbnRmX3N0eWxlLCBkcHJpbnRmX3N0eWxl X2FnZW50KSAhPSAwKQotICAgICAgewotCWNvbnRfY21kX2xpbmUgPSB4bWFs bG9jIChzaXplb2YgKHN0cnVjdCBjb21tYW5kX2xpbmUpKTsKLQljb250X2Nt ZF9saW5lLT5jb250cm9sX3R5cGUgPSBzaW1wbGVfY29udHJvbDsKLQljb250 X2NtZF9saW5lLT5ib2R5X2NvdW50ID0gMDsKLQljb250X2NtZF9saW5lLT5i b2R5X2xpc3QgPSBOVUxMOwotCWNvbnRfY21kX2xpbmUtPm5leHQgPSBOVUxM OwotCWNvbnRfY21kX2xpbmUtPmxpbmUgPSB4c3RyZHVwICgiY29udGludWUi KTsKLSAgICAgIH0KKyAgICBzdHJ1Y3QgY29tbWFuZF9saW5lICpwcmludGZf Y21kX2xpbmUKKyAgICAgID0geG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgY29t bWFuZF9saW5lKSk7CiAKICAgICBwcmludGZfY21kX2xpbmUgPSB4bWFsbG9j IChzaXplb2YgKHN0cnVjdCBjb21tYW5kX2xpbmUpKTsKICAgICBwcmludGZf Y21kX2xpbmUtPmNvbnRyb2xfdHlwZSA9IHNpbXBsZV9jb250cm9sOwogICAg IHByaW50Zl9jbWRfbGluZS0+Ym9keV9jb3VudCA9IDA7CiAgICAgcHJpbnRm X2NtZF9saW5lLT5ib2R5X2xpc3QgPSBOVUxMOwotICAgIHByaW50Zl9jbWRf bGluZS0+bmV4dCA9IGNvbnRfY21kX2xpbmU7CisgICAgcHJpbnRmX2NtZF9s aW5lLT5uZXh0ID0gTlVMTDsKICAgICBwcmludGZfY21kX2xpbmUtPmxpbmUg PSBwcmludGZfbGluZTsKIAogICAgIGJyZWFrcG9pbnRfc2V0X2NvbW1hbmRz IChiLCBwcmludGZfY21kX2xpbmUpOwpAQCAtMTI3NjQsNiArMTI3NDksMjIg QEAgYmFzZV9icmVha3BvaW50X2V4cGxhaW5zX3NpZ25hbCAoc3RydWN0CiAg IHJldHVybiBCUFNUQVRfU0lHTkFMX0hJREU7CiB9CiAKKy8qIFRoZSBkZWZh dWx0ICdhZnRlcl9jb25kJyBtZXRob2QuICAqLworCitzdGF0aWMgdm9pZAor YmFzZV9icmVha3BvaW50X2FmdGVyX2NvbmQgKHN0cnVjdCBicHN0YXRzICpi cykKK3sKKyAgc3RydWN0IGJyZWFrcG9pbnQgKmIgPSBicy0+YnJlYWtwb2lu dF9hdDsKKworICBpZiAoYi0+c2lsZW50KQorICAgIGJzLT5wcmludCA9IDA7 CisgIGJzLT5jb21tYW5kcyA9IGItPmNvbW1hbmRzOworICBpbmNyZWZfY291 bnRlZF9jb21tYW5kX2xpbmUgKGJzLT5jb21tYW5kcyk7CisgIGlmIChjb21t YW5kX2xpbmVfaXNfc2lsZW50IChicy0+Y29tbWFuZHMKKwkJCSAgICAgID8g YnMtPmNvbW1hbmRzLT5jb21tYW5kcyA6IE5VTEwpKQorICBicy0+cHJpbnQg PSAwOworfQorCiBzdHJ1Y3QgYnJlYWtwb2ludF9vcHMgYmFzZV9icmVha3Bv aW50X29wcyA9CiB7CiAgIGJhc2VfYnJlYWtwb2ludF9kdG9yLApAQCAtMTI3 ODMsNyArMTI3ODQsOCBAQCBzdHJ1Y3QgYnJlYWtwb2ludF9vcHMgYmFzZV9i cmVha3BvaW50X29wCiAgIGJhc2VfYnJlYWtwb2ludF9jcmVhdGVfc2Fsc19m cm9tX2FkZHJlc3MsCiAgIGJhc2VfYnJlYWtwb2ludF9jcmVhdGVfYnJlYWtw b2ludHNfc2FsLAogICBiYXNlX2JyZWFrcG9pbnRfZGVjb2RlX2xpbmVzcGVj LAotICBiYXNlX2JyZWFrcG9pbnRfZXhwbGFpbnNfc2lnbmFsCisgIGJhc2Vf YnJlYWtwb2ludF9leHBsYWluc19zaWduYWwsCisgIGJhc2VfYnJlYWtwb2lu dF9hZnRlcl9jb25kLAogfTsKIAogLyogRGVmYXVsdCBicmVha3BvaW50X29w cyBtZXRob2RzLiAgKi8KQEAgLTEzMzc3LDYgKzEzMzc5LDIzIEBAIGRwcmlu dGZfcHJpbnRfcmVjcmVhdGUgKHN0cnVjdCBicmVha3BvaW4KICAgcHJpbnRf cmVjcmVhdGVfdGhyZWFkICh0cCwgZnApOwogfQogCisvKiBJbXBsZW1lbnQg dGhlICJhZnRlcl9jb25kIiAgYnJlYWtwb2ludF9vcHMgbWV0aG9kIGZvciBk cHJpbnRmLiAgKi8KKworc3RhdGljIHZvaWQKK2RwcmludGZfYWZ0ZXJfY29u ZCAoc3RydWN0IGJwc3RhdHMgKmJzKQoreworICBicHN0YXQgdG1wOworCisg IGJzLT5zdG9wID0gMDsKKyAgYnMtPnByaW50ID0gMDsKKyAgYnMtPmNvbW1h bmRzID0gYi0+Y29tbWFuZHM7CisgIHRtcCA9IGJzLT5uZXh0OworICBicy0+ bmV4dCA9IHRtcDsKKyAgaW5jcmVmX2NvdW50ZWRfY29tbWFuZF9saW5lIChi cy0+Y29tbWFuZHMpOworICBicHN0YXRfZG9fYWN0aW9uc18xICgmYnMpOwor ICBicy0+bmV4dCA9IHRtcDsKK30KKwogLyogVGhlIGJyZWFrcG9pbnRfb3Bz IHN0cnVjdHVyZSB0byBiZSB1c2VkIG9uIHN0YXRpYyB0cmFjZXBvaW50cyB3 aXRoCiAgICBtYXJrZXJzIChgLW0nKS4gICovCiAKQEAgLTE1ODczLDYgKzE1 ODkyLDcgQEAgaW5pdGlhbGl6ZV9icmVha3BvaW50X29wcyAodm9pZCkKICAg b3BzLT5wcmludF9pdCA9IGJrcHRfcHJpbnRfaXQ7CiAgIG9wcy0+cHJpbnRf bWVudGlvbiA9IGJrcHRfcHJpbnRfbWVudGlvbjsKICAgb3BzLT5wcmludF9y ZWNyZWF0ZSA9IGRwcmludGZfcHJpbnRfcmVjcmVhdGU7CisgIG9wcy0+YWZ0 ZXJfY29uZCA9IGRwcmludGZfYWZ0ZXJfY29uZDsKIH0KIAogLyogQ2hhaW4g Y29udGFpbmluZyBhbGwgZGVmaW5lZCAiZW5hYmxlIGJyZWFrcG9pbnQiIHN1 YmNvbW1hbmRzLiAgKi8KLS0tIGEvZ2RiL2JyZWFrcG9pbnQuaAorKysgYi9n ZGIvYnJlYWtwb2ludC5oCkBAIC02MTQsNiArNjE0LDkgQEAgc3RydWN0IGJy ZWFrcG9pbnRfb3BzCiAgICAgICdjYXRjaCBzaWduYWwnIGludGVyYWN0IHBy b3Blcmx5IHdpdGggJ2hhbmRsZSc7IHNlZQogICAgICBicHN0YXRfZXhwbGFp bnNfc2lnbmFsLiAgKi8KICAgZW51bSBicHN0YXRfc2lnbmFsX3ZhbHVlICgq ZXhwbGFpbnNfc2lnbmFsKSAoc3RydWN0IGJyZWFrcG9pbnQgKik7CisKKyAg LyogRG8gc29tZSBzZXR1cCBhZnRlciBjaGVjayBjb25kaXRpb24gaXMgdHJ1 ZS4gICovCisgIHZvaWQgKCphZnRlcl9jb25kKSAoc3RydWN0IGJwc3RhdHMg KmJzKTsKIH07CiAKIC8qIEhlbHBlciBmb3IgYnJlYWtwb2ludF9vcHMtPnBy aW50X3JlY3JlYXRlIGltcGxlbWVudGF0aW9ucy4gIFByaW50cwo= --047d7b343d9a57ff4404db091128 Content-Type: text/plain; charset=US-ASCII; name="dprintf-continue-test.txt" Content-Disposition: attachment; filename="dprintf-continue-test.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hfv8u6zu1 Content-length: 615 LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kcHJpbnRmLmV4cAorKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RwcmludGYuZXhwCkBAIC01MCwx MCArNTAsOCBAQCBnZGJfdGVzdF9zZXF1ZW5jZSAiaW5mbyBicmVha3BvaW50 cyIgImRwCiAgICAgIlxbXHJcblxdMiAgICAgICBicmVha3BvaW50IgogICAg ICJcW1xyXG5cXTMgICAgICAgZHByaW50ZiIKICAgICAiXFtcclxuXF0gICAg ICAgIHByaW50ZiBcIkF0IGZvbyBlbnRyeVxcXFxuXCIiCi0gICAgIlxbXHJc blxdICAgICAgICBjb250aW51ZSIKICAgICAiXFtcclxuXF00ICAgICAgIGRw cmludGYiCiAgICAgIlxbXHJcblxdICAgICAgICBwcmludGYgXCJhcmc9JWQs IGc9JWRcXFxcblwiLCBhcmcsIGciCi0gICAgIlxbXHJcblxdICAgICAgICBj b250aW51ZSIKIH0KIAogZ2RiX3Rlc3QgImJyZWFrICRicF9sb2NhdGlvbjEi IFwK --047d7b343d9a57ff4404db091128--