From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20223 invoked by alias); 7 Jun 2013 03:16:04 -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 20196 invoked by uid 89); 7 Jun 2013 03:15:59 -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,TW_XP autolearn=ham version=3.3.1 Received: from mail-ob0-f181.google.com (HELO mail-ob0-f181.google.com) (209.85.214.181) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Fri, 07 Jun 2013 03:15:57 +0000 Received: by mail-ob0-f181.google.com with SMTP id 16so5758596obc.40 for ; Thu, 06 Jun 2013 20:15:55 -0700 (PDT) X-Received: by 10.60.134.204 with SMTP id pm12mr20852614oeb.67.1370574955563; Thu, 06 Jun 2013 20:15:55 -0700 (PDT) MIME-Version: 1.0 Received: by 10.60.38.193 with HTTP; Thu, 6 Jun 2013 20:15:15 -0700 (PDT) In-Reply-To: <51ACD6ED.7040604@redhat.com> References: <1361192891-29341-1-git-send-email-yao@codesourcery.com> <8738wpd3qe.fsf@fleche.redhat.com> <5176C14B.6010603@redhat.com> <51774714.9060306@codesourcery.com> <51969A92.80003@redhat.com> <519CBE2B.7060007@redhat.com> <51ACD6ED.7040604@redhat.com> From: Hui Zhu Date: Fri, 07 Jun 2013 03:16:00 -0000 Message-ID: Subject: Re: [RFC] PR 15075 dprintf interferes with "next" To: Pedro Alves Cc: Tom Tromey , gdb-patches@sourceware.org, Keith Seitz , Yao Qi Content-Type: multipart/mixed; boundary=047d7b471dc45d526404de87d9f4 X-Virus-Found: No X-SW-Source: 2013-06/txt/msg00139.txt.bz2 --047d7b471dc45d526404de87d9f4 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 2216 Hi Pedro, Thanks for your review. On Tue, Jun 4, 2013 at 1:48 AM, Pedro Alves wrote: > On 06/03/2013 05:06 AM, Hui Zhu wrote: >> Ping http://sourceware.org/ml/gdb-patches/2013-05/msg00958.html >> > > As this exposes the non-stop racy failure, we should fix it that one > first. Failing that, we should kfail or skip the test with > remote targets. Let's consider the latter option later if we don't > manage to address the race timely. As I said on: > > http://sourceware.org/ml/gdb-patches/2013-05/msg01111.html > > I'm investigating this. I have a prototype patch, but I need > a bit more to handle some details, like what to do with > signal catchpoints when we find threads had been stopped with > a signal (I'm currently thinking of skipping the catchpoints). > I'm composing a test to exercise/expose this kind of stuff, > for a better RFC. I add a check in the begin of dprintf-non-stop.exp. Then if the target in remote, this test will not support. Please help me review it. Thanks, Hui 2013-06-07 Yao Qi Hui Zhu Pedro Alves PR breakpoints/15075 PR breakpoints/15434 * breakpoint.c (bpstat_stop_status): Call b->ops->after_condition_true. (update_dprintf_command_list): Don't append "continue" command to the command list of dprintf breakpoint. (base_breakpoint_after_condition_true): New function. (base_breakpoint_ops): Add base_breakpoint_after_condition_true. (dprintf_create_breakpoints_sal, dprintf_after_condition_true): New functions. (initialize_breakpoint_ops): Set dprintf_create_breakpoints_sal and dprintf_after_condition_true. * breakpoint.h (breakpoint_ops): Add after_condition_true. 2013-06-07 Yao Qi Hui Zhu PR breakpoints/15075 PR breakpoints/15434 * gdb.base/dprintf-next.c: New file. * gdb.base/dprintf-next.exp: New file. * gdb.base/dprintf-non-stop.c: New file. * gdb.base/dprintf-non-stop.exp: New file. * gdb.base/dprintf.exp: Don't check "continue" in the output of "info breakpoints". * gdb.mi/mi-breakpoint-changed.exp (test_insert_delete_modify): Don't check "continue" in script field. --047d7b471dc45d526404de87d9f4 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_hhmswivs0 Content-length: 7308 LS0tIGEvZ2RiL2JyZWFrcG9pbnQuYworKysgYi9nZGIvYnJlYWtwb2ludC5j CkBAIC01Mjk5LDYgKzUyOTksOCBAQCBicHN0YXRfc3RvcF9zdGF0dXMgKHN0 cnVjdCBhZGRyZXNzX3NwYWNlCiAJICAgICAgaWYgKGNvbW1hbmRfbGluZV9p c19zaWxlbnQgKGJzLT5jb21tYW5kcwogCQkJCQkgID8gYnMtPmNvbW1hbmRz LT5jb21tYW5kcyA6IE5VTEwpKQogCQlicy0+cHJpbnQgPSAwOworCisJICAg ICAgYi0+b3BzLT5hZnRlcl9jb25kaXRpb25fdHJ1ZSAoYnMpOwogCSAgICB9 CiAKIAl9CkBAIC04OTM0LDI1ICs4OTM2LDE2IEBAIHVwZGF0ZV9kcHJpbnRm X2NvbW1hbmRfbGlzdCAoc3RydWN0IGJyZWEKIAkJICAgIF8oIkludmFsaWQg ZHByaW50ZiBzdHlsZS4iKSk7CiAKICAgZ2RiX2Fzc2VydCAocHJpbnRmX2xp bmUgIT0gTlVMTCk7Ci0gIC8qIE1hbnVmYWN0dXJlIGEgcHJpbnRmL2NvbnRp bnVlIHNlcXVlbmNlLiAgKi8KKyAgLyogTWFudWZhY3R1cmUgYSBwcmludGYg c2VxdWVuY2UuICAqLwogICB7Ci0gICAgc3RydWN0IGNvbW1hbmRfbGluZSAq cHJpbnRmX2NtZF9saW5lLCAqY29udF9jbWRfbGluZSA9IE5VTEw7Ci0KLSAg ICBpZiAoc3RyY21wIChkcHJpbnRmX3N0eWxlLCBkcHJpbnRmX3N0eWxlX2Fn ZW50KSAhPSAwKQotICAgICAgewotCWNvbnRfY21kX2xpbmUgPSB4bWFsbG9j IChzaXplb2YgKHN0cnVjdCBjb21tYW5kX2xpbmUpKTsKLQljb250X2NtZF9s aW5lLT5jb250cm9sX3R5cGUgPSBzaW1wbGVfY29udHJvbDsKLQljb250X2Nt ZF9saW5lLT5ib2R5X2NvdW50ID0gMDsKLQljb250X2NtZF9saW5lLT5ib2R5 X2xpc3QgPSBOVUxMOwotCWNvbnRfY21kX2xpbmUtPm5leHQgPSBOVUxMOwot CWNvbnRfY21kX2xpbmUtPmxpbmUgPSB4c3RyZHVwICgiY29udGludWUiKTsK LSAgICAgIH0KKyAgICBzdHJ1Y3QgY29tbWFuZF9saW5lICpwcmludGZfY21k X2xpbmUKKyAgICAgID0geG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgY29tbWFu ZF9saW5lKSk7CiAKICAgICBwcmludGZfY21kX2xpbmUgPSB4bWFsbG9jIChz aXplb2YgKHN0cnVjdCBjb21tYW5kX2xpbmUpKTsKICAgICBwcmludGZfY21k X2xpbmUtPmNvbnRyb2xfdHlwZSA9IHNpbXBsZV9jb250cm9sOwogICAgIHBy aW50Zl9jbWRfbGluZS0+Ym9keV9jb3VudCA9IDA7CiAgICAgcHJpbnRmX2Nt ZF9saW5lLT5ib2R5X2xpc3QgPSBOVUxMOwotICAgIHByaW50Zl9jbWRfbGlu ZS0+bmV4dCA9IGNvbnRfY21kX2xpbmU7CisgICAgcHJpbnRmX2NtZF9saW5l LT5uZXh0ID0gTlVMTDsKICAgICBwcmludGZfY21kX2xpbmUtPmxpbmUgPSBw cmludGZfbGluZTsKIAogICAgIGJyZWFrcG9pbnRfc2V0X2NvbW1hbmRzIChi LCBwcmludGZfY21kX2xpbmUpOwpAQCAtMTI3MzgsNiArMTI3MzEsMTQgQEAg YmFzZV9icmVha3BvaW50X2V4cGxhaW5zX3NpZ25hbCAoc3RydWN0CiAgIHJl dHVybiBCUFNUQVRfU0lHTkFMX0hJREU7CiB9CiAKKy8qIFRoZSBkZWZhdWx0 ICJhZnRlcl9jb25kaXRpb25fdHJ1ZSIgbWV0aG9kLiAgKi8KKworc3RhdGlj IHZvaWQKK2Jhc2VfYnJlYWtwb2ludF9hZnRlcl9jb25kaXRpb25fdHJ1ZSAo c3RydWN0IGJwc3RhdHMgKmJzKQoreworICAvKiBOb3RoaW5nIHRvIGRvLiAg ICovCit9CisKIHN0cnVjdCBicmVha3BvaW50X29wcyBiYXNlX2JyZWFrcG9p bnRfb3BzID0KIHsKICAgYmFzZV9icmVha3BvaW50X2R0b3IsCkBAIC0xMjc1 Nyw3ICsxMjc1OCw4IEBAIHN0cnVjdCBicmVha3BvaW50X29wcyBiYXNlX2Jy ZWFrcG9pbnRfb3AKICAgYmFzZV9icmVha3BvaW50X2NyZWF0ZV9zYWxzX2Zy b21fYWRkcmVzcywKICAgYmFzZV9icmVha3BvaW50X2NyZWF0ZV9icmVha3Bv aW50c19zYWwsCiAgIGJhc2VfYnJlYWtwb2ludF9kZWNvZGVfbGluZXNwZWMs Ci0gIGJhc2VfYnJlYWtwb2ludF9leHBsYWluc19zaWduYWwKKyAgYmFzZV9i cmVha3BvaW50X2V4cGxhaW5zX3NpZ25hbCwKKyAgYmFzZV9icmVha3BvaW50 X2FmdGVyX2NvbmRpdGlvbl90cnVlLAogfTsKIAogLyogRGVmYXVsdCBicmVh a3BvaW50X29wcyBtZXRob2RzLiAgKi8KQEAgLTEzMzUxLDYgKzEzMzUzLDc2 IEBAIGRwcmludGZfcHJpbnRfcmVjcmVhdGUgKHN0cnVjdCBicmVha3BvaW4K ICAgcHJpbnRfcmVjcmVhdGVfdGhyZWFkICh0cCwgZnApOwogfQogCisvKiBJ bXBsZW1lbnQgdGhlICJjcmVhdGVfYnJlYWtwb2ludHNfc2FsIiBicmVha3Bv aW50X29wcyBtZXRob2QgZm9yCisgICBkcHJpbnRmLiAgKi8KKworc3RhdGlj IHZvaWQKK2RwcmludGZfY3JlYXRlX2JyZWFrcG9pbnRzX3NhbCAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsCisJCQkJc3RydWN0IGxpbmVzcGVjX3Jlc3Vs dCAqY2Fub25pY2FsLAorCQkJCXN0cnVjdCBsaW5lc3BlY19zYWxzICpsc2Fs LAorCQkJCWNoYXIgKmNvbmRfc3RyaW5nLAorCQkJCWNoYXIgKmV4dHJhX3N0 cmluZywKKwkJCQllbnVtIGJwdHlwZSB0eXBlX3dhbnRlZCwKKwkJCQllbnVt IGJwZGlzcCBkaXNwb3NpdGlvbiwKKwkJCQlpbnQgdGhyZWFkLAorCQkJCWlu dCB0YXNrLCBpbnQgaWdub3JlX2NvdW50LAorCQkJCWNvbnN0IHN0cnVjdCBi cmVha3BvaW50X29wcyAqb3BzLAorCQkJCWludCBmcm9tX3R0eSwgaW50IGVu YWJsZWQsCisJCQkJaW50IGludGVybmFsLCB1bnNpZ25lZCBmbGFncykKK3sK KyAgc3RydWN0IGJyZWFrcG9pbnQgKmI7CisKKyAgY3JlYXRlX2JyZWFrcG9p bnRzX3NhbF9kZWZhdWx0IChnZGJhcmNoLCBjYW5vbmljYWwsIGxzYWwsCisJ CQkJICBjb25kX3N0cmluZywgZXh0cmFfc3RyaW5nLAorCQkJCSAgdHlwZV93 YW50ZWQsCisJCQkJICBkaXNwb3NpdGlvbiwgdGhyZWFkLCB0YXNrLAorCQkJ CSAgaWdub3JlX2NvdW50LCBvcHMsIGZyb21fdHR5LAorCQkJCSAgZW5hYmxl ZCwgaW50ZXJuYWwsIGZsYWdzKTsKKworICBiID0gZ2V0X2JyZWFrcG9pbnQg KGJyZWFrcG9pbnRfY291bnQpOworICBnZGJfYXNzZXJ0IChiICE9IE5VTEwp OworCisgIGJyZWFrcG9pbnRfc2V0X3NpbGVudCAoYiwgMCk7Cit9CisKKy8q IEltcGxlbWVudCB0aGUgImFmdGVyX2NvbmRpdGlvbl90cnVlIiBicmVha3Bv aW50X29wcyBtZXRob2QgZm9yCisgICBkcHJpbnRmLgorCisgICBkcHJpbnRm J3MgYXJlIGltcGxlbWVudGVkIHdpdGggcmVndWxhciBjb21tYW5kcyBpbiB0 aGVpciBjb21tYW5kCisgICBsaXN0LCBidXQgd2UgcnVuIHRoZSBjb21tYW5k cyBoZXJlIGluc3RlYWQgb2YgYmVmb3JlIHByZXNlbnRpbmcgdGhlCisgICBz dG9wIHRvIHRoZSB1c2VyLCBhcyBkcHJpbnRmJ3MgZG9uJ3QgYWN0dWFsbHkg Y2F1c2UgYSBzdG9wLiAgVGhpcworICAgYWxzbyBtYWtlcyBpdCBzbyB0aGF0 IHRoZSBjb21tYW5kcyBvZiBtdWx0aXBsZSBkcHJpbnRmcyBhdCB0aGUgc2Ft ZQorICAgYWRkcmVzcyBhcmUgYWxsIGhhbmRsZWQuICAqLworCitzdGF0aWMg dm9pZAorZHByaW50Zl9hZnRlcl9jb25kaXRpb25fdHJ1ZSAoc3RydWN0IGJw c3RhdHMgKmJzKQoreworICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NoYWluOwor ICBzdHJ1Y3QgYnBzdGF0cyB0bXBfYnMgPSB7IE5VTEwgfTsKKyAgc3RydWN0 IGJwc3RhdHMgKnRtcF9ic19wID0gJnRtcF9iczsKKworICAvKiBkcHJpbnRm J3MgbmV2ZXIgY2F1c2UgYSBzdG9wLiAgVGhpcyB3YXNuJ3Qgc2V0IGluIHRo ZQorICAgICBjaGVja19zdGF0dXMgaG9vayBpbnN0ZWFkIGJlY2F1c2UgdGhh dCB3b3VsZCBtYWtlIHRoZSBkcHJpbnRmJ3MKKyAgICAgY29uZGl0aW9uIG5v dCBiZSBldmFsdWF0ZWQuICAqLworICBicy0+c3RvcCA9IDA7CisKKyAgLyog UnVuIHRoZSBjb21tYW5kIGxpc3QgaGVyZS4gIFRha2Ugb3duZXJzaGlwIG9m IGl0IGluc3RlYWQgb2YKKyAgICAgY29weWluZy4gIFdlIG5ldmVyIHdhbnQg dGhlc2UgY29tbWFuZHMgdG8gcnVuIGxhdGVyIGluCisgICAgIGJwc3RhdF9k b19hY3Rpb25zLCBpZiBhIGJyZWFrcG9pbnQgdGhhdCBjYXVzZXMgYSBzdG9w IGhhcHBlbnMgdG8KKyAgICAgYmUgc2V0IGF0IHNhbWUgYWRkcmVzcyBhcyB0 aGlzIGRwcmludGYsIG9yIGV2ZW4gaWYgcnVubmluZyB0aGUKKyAgICAgY29t bWFuZHMgaGVyZSB0aHJvd3MuICAqLworICB0bXBfYnMuY29tbWFuZHMgPSBi cy0+Y29tbWFuZHM7CisgIGJzLT5jb21tYW5kcyA9IE5VTEw7CisgIG9sZF9j aGFpbiA9IG1ha2VfY2xlYW51cF9kZWNyZWZfY291bnRlZF9jb21tYW5kX2xp bmUgKCZ0bXBfYnMuY29tbWFuZHMpOworCisgIGJwc3RhdF9kb19hY3Rpb25z XzEgKCZ0bXBfYnNfcCk7CisKKyAgLyogJ3RtcF9icy5jb21tYW5kcycgd2ls bCB1c3VhbGx5IGJlIE5VTEwgYnkgbm93LCBidXQKKyAgICAgYnBzdGF0X2Rv X2FjdGlvbnNfMSBtYXkgcmV0dXJuIGVhcmx5IHdpdGhvdXQgcHJvY2Vzc2lu ZyB0aGUgd2hvbGUKKyAgICAgbGlzdC4gICovCisgIGRvX2NsZWFudXBzIChv bGRfY2hhaW4pOworfQorCiAvKiBUaGUgYnJlYWtwb2ludF9vcHMgc3RydWN0 dXJlIHRvIGJlIHVzZWQgb24gc3RhdGljIHRyYWNlcG9pbnRzIHdpdGgKICAg IG1hcmtlcnMgKGAtbScpLiAgKi8KIApAQCAtMTU4NDcsNiArMTU5MTksOCBA QCBpbml0aWFsaXplX2JyZWFrcG9pbnRfb3BzICh2b2lkKQogICBvcHMtPnBy aW50X2l0ID0gYmtwdF9wcmludF9pdDsKICAgb3BzLT5wcmludF9tZW50aW9u ID0gYmtwdF9wcmludF9tZW50aW9uOwogICBvcHMtPnByaW50X3JlY3JlYXRl ID0gZHByaW50Zl9wcmludF9yZWNyZWF0ZTsKKyAgb3BzLT5jcmVhdGVfYnJl YWtwb2ludHNfc2FsID0gZHByaW50Zl9jcmVhdGVfYnJlYWtwb2ludHNfc2Fs OworICBvcHMtPmFmdGVyX2NvbmRpdGlvbl90cnVlID0gZHByaW50Zl9hZnRl cl9jb25kaXRpb25fdHJ1ZTsKIH0KIAogLyogQ2hhaW4gY29udGFpbmluZyBh bGwgZGVmaW5lZCAiZW5hYmxlIGJyZWFrcG9pbnQiIHN1YmNvbW1hbmRzLiAg Ki8KLS0tIGEvZ2RiL2JyZWFrcG9pbnQuaAorKysgYi9nZGIvYnJlYWtwb2lu dC5oCkBAIC02MTQsNiArNjE0LDEwIEBAIHN0cnVjdCBicmVha3BvaW50X29w cwogICAgICAnY2F0Y2ggc2lnbmFsJyBpbnRlcmFjdCBwcm9wZXJseSB3aXRo ICdoYW5kbGUnOyBzZWUKICAgICAgYnBzdGF0X2V4cGxhaW5zX3NpZ25hbC4g ICovCiAgIGVudW0gYnBzdGF0X3NpZ25hbF92YWx1ZSAoKmV4cGxhaW5zX3Np Z25hbCkgKHN0cnVjdCBicmVha3BvaW50ICopOworCisgIC8qIENhbGxlZCBh ZnRlciBldmFsdWF0aW5nIHRoZSBicmVha3BvaW50J3MgY29uZGl0aW9uLAor ICAgICBhbmQgb25seSBpZiBpdCBldmFsdWF0ZWQgdHJ1ZS4gICovCisgIHZv aWQgKCphZnRlcl9jb25kaXRpb25fdHJ1ZSkgKHN0cnVjdCBicHN0YXRzICpi cyk7CiB9OwogCiAvKiBIZWxwZXIgZm9yIGJyZWFrcG9pbnRfb3BzLT5wcmlu dF9yZWNyZWF0ZSBpbXBsZW1lbnRhdGlvbnMuICBQcmludHMK --047d7b471dc45d526404de87d9f4 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_hhmswiw21 Content-length: 8166 LS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Rw cmludGYtbmV4dC5jCkBAIC0wLDAgKzEsMjYgQEAKKy8qIFRoaXMgdGVzdGNh c2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisKKyAgIENv cHlyaWdodCAoQykgMjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworaW50CittYWlu ICh2b2lkKQoreworICBpbnQgeCA9IDU7CisKKyAgKyt4OyAvKiBOZXh0IHdp dGhvdXQgZHByaW50Zi4gKi8KKyAgKyt4OyAvKiBTZXQgZHByaW50ZiBoZXJl LiAqLworICByZXR1cm4geCAtIDc7Cit9Ci0tLSAvZGV2L251bGwKKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kcHJpbnRmLW5leHQuZXhwCkBAIC0w LDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IDIwMTMgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cisj IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisj CisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor IyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCitzdGFuZGFyZF90 ZXN0ZmlsZQorCitzZXQgZXhlY3V0YWJsZSAkdGVzdGZpbGUKK3NldCBleHBm aWxlICR0ZXN0ZmlsZS5leHAKKworc2V0IGRwX2xvY2F0aW9uIFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJTZXQgZHByaW50ZiBoZXJlIl0KKworaWYgW3ByZXBh cmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIGZvciBkcHJpbnRm IHdpdGggbmV4dCIgXAorICAgICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0ge2Rl YnVnfV0geworICAgIHJldHVybiAtMQorfQorCitpZiAhW3J1bnRvX21haW5d IHsKKyAgICBmYWlsICJDYW4ndCBydW4gdG8gbWFpbiIKKyAgICByZXR1cm4g LTEKK30KKworZ2RiX3Rlc3QgImRwcmludGYgJGRwX2xvY2F0aW9uLCBcIiVk XFxuXCIsIHgiIFwKKyAgICAiRHByaW50ZiAuKiIKKworZ2RiX3Rlc3QgIm5l eHQiICJcXCtcXCt4XDsuKlwvXCogTmV4dCB3aXRob3V0IGRwcmludGYuKiIg Im5leHQgMSIKK2dkYl90ZXN0ICJuZXh0IiAiXFwrXFwreFw7LipcL1wqIFNl dCBkcHJpbnRmIGhlcmUuKiIgIm5leHQgMiIKLS0tIC9kZXYvbnVsbAorKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RwcmludGYtbm9uLXN0b3AuYwpA QCAtMCwwICsxLDMwIEBACisvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2Yg R0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorCisgICBDb3B5cmlnaHQgKEMpIDIw MTMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBDb250cmli dXRlZCBieSBIdWkgWmh1ICA8aHVpQGNvZGVzb3VyY2VyeS5jb20+CisKKyAg IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKK3ZvaWQKK2ZvbyAoKQorewor fQorCitpbnQKK21haW4gKCkKK3sKKyAgZm9vICgpOworICBzbGVlcCAoMyk7 CisgIHJldHVybiAwOworfQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvZHByaW50Zi1ub24tc3RvcC5leHAKQEAgLTAsMCAr MSw1NCBAQAorIyAgIENvcHlyaWdodCAoQykgMjAxMyBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKyMgICBDb250cmlidXRlZCBieSBIdWkgWmh1 ICA8aHVpQGNvZGVzb3VyY2VyeS5jb20+CisKKyMgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJ ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisK K2lmIFtpc19yZW1vdGUgdGFyZ2V0XSB0aGVuIHsKKyAgICB1bnN1cHBvcnRl ZCAiRHByaW50ZiB3aXRoIG5vbi1zdG9wIGlzIG5vdCBzdXBwb3J0ZWQuIgor ICAgIHJldHVybiAwCit9CisKK3N0YW5kYXJkX3Rlc3RmaWxlCisKK2lmIFtw cmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSBmb3IgZHBy aW50ZiB3aXRoIG5vbi1zdG9wIiBcCisgICAgJHt0ZXN0ZmlsZX0gJHtzcmNm aWxlfSB7ZGVidWd9XSB7CisgICAgcmV0dXJuIC0xCit9CisKK2dkYl90ZXN0 X25vX291dHB1dCAic2V0IHRhcmdldC1hc3luYyBvbiIKK2dkYl90ZXN0X25v X291dHB1dCAic2V0IG5vbi1zdG9wIG9uIgorCitpZiAhW3J1bnRvIG1haW5d IHsKKyAgICBmYWlsICJDYW4ndCBydW4gdG8gbWFpbiIKKyAgICByZXR1cm4g LTEKK30KKworZ2RiX3Rlc3QgImRwcmludGYgZm9vLFwiQXQgZm9vIGVudHJ5 XFxuXCIiICJEcHJpbnRmIC4qIgorCitzZW5kX2dkYiAiY29udGludWUgJlxu IgorZXhlYyBzbGVlcCAxCisKK3NldCB0ZXN0ICJpbnRlcnJ1cHQiCitnZGJf dGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7CisgICAgLXJlICJpbnRlcnJ1 cHRcclxuJGdkYl9wcm9tcHQgIiB7CisJcGFzcyAkdGVzdAorICAgIH0KK30K Kworc2V0IHRlc3QgImluZmVyaW9yIHN0b3BwZWQiCitnZGJfdGVzdF9tdWx0 aXBsZSAiIiAkdGVzdCB7CisgICAgLXJlICJcclxuXFxcWy4qIFxbMC05XF0r XFxcXSAjMSBzdG9wcGVkXFxcLlxyXG4iIHsKKwlwYXNzICR0ZXN0CisgICAg fQorfQotLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RwcmludGYuZXhw CisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZHByaW50Zi5leHAKQEAg LTUwLDEwICs1MCw4IEBAIGdkYl90ZXN0X3NlcXVlbmNlICJpbmZvIGJyZWFr cG9pbnRzIiAiZHAKICAgICAiXFtcclxuXF0yICAgICAgIGJyZWFrcG9pbnQi CiAgICAgIlxbXHJcblxdMyAgICAgICBkcHJpbnRmIgogICAgICJcW1xyXG5c XSAgICAgICAgcHJpbnRmIFwiQXQgZm9vIGVudHJ5XFxcXG5cIiIKLSAgICAi XFtcclxuXF0gICAgICAgIGNvbnRpbnVlIgogICAgICJcW1xyXG5cXTQgICAg ICAgZHByaW50ZiIKICAgICAiXFtcclxuXF0gICAgICAgIHByaW50ZiBcImFy Zz0lZCwgZz0lZFxcXFxuXCIsIGFyZywgZyIKLSAgICAiXFtcclxuXF0gICAg ICAgIGNvbnRpbnVlIgogfQogCiBnZGJfdGVzdCAiYnJlYWsgJGJwX2xvY2F0 aW9uMSIgXApAQCAtMTM1LDQgKzEzMywzIEBAIGlmICR0YXJnZXRfY2FuX2Rw cmludGYgewogCiBnZGJfdGVzdCAic2V0IGRwcmludGYtc3R5bGUgZm9vYmFy IiAiVW5kZWZpbmVkIGl0ZW06IFwiZm9vYmFyXCIuIiBcCiAgICAgIlNldCBk cHJpbnRmIHN0eWxlIHRvIGFuIHVucmVjb2duaXplZCB0eXBlIgotCi0tLSBh L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWJyZWFrcG9pbnQtY2hhbmdlZC5l eHAKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktYnJlYWtwb2ludC1j aGFuZ2VkLmV4cApAQCAtOTYsNyArOTYsNyBAQCBwcm9jIHRlc3RfaW5zZXJ0 X2RlbGV0ZV9tb2RpZnkgeyB9IHsKIAkkdGVzdAogICAgIHNldCB0ZXN0ICJk cHJpbnRmIG1hcmtlciwgXCJhcmdcIiBcIiIKICAgICBtaV9nZGJfdGVzdCAk dGVzdCBcCi0Jey4qPWJyZWFrcG9pbnQtY3JlYXRlZCxia3B0PVx7bnVtYmVy PSI2Iix0eXBlPSJkcHJpbnRmIi4qLHNjcmlwdD1ce1wicHJpbnRmIFxcXFxc ImFyZ1xcXFxcIiBcXFxcXCJcIixcImNvbnRpbnVlXCJcfS4qXH1cclxuXF5k b25lfSBcCisJey4qPWJyZWFrcG9pbnQtY3JlYXRlZCxia3B0PVx7bnVtYmVy PSI2Iix0eXBlPSJkcHJpbnRmIi4qLHNjcmlwdD1ce1wicHJpbnRmIFxcXFxc ImFyZ1xcXFxcIiBcXFxcXCJcIlx9LipcfVxyXG5cXmRvbmV9IFwKIAkkdGVz dAogCiAgICAgIyAyLiB3aGVuIG1vZGlmeWluZyBjb25kaXRpb24K --047d7b471dc45d526404de87d9f4--