From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16562 invoked by alias); 26 Nov 2008 02:03:49 -0000 Received: (qmail 15881 invoked by uid 22791); 26 Nov 2008 02:03:45 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 26 Nov 2008 02:02:46 +0000 Received: from wpaz21.hot.corp.google.com (wpaz21.hot.corp.google.com [172.24.198.85]) by smtp-out.google.com with ESMTP id mAQ22h89016107 for ; Tue, 25 Nov 2008 18:02:44 -0800 Received: from rv-out-0506.google.com (rvbf6.prod.google.com [10.140.82.6]) by wpaz21.hot.corp.google.com with ESMTP id mAQ22gpa017576 for ; Tue, 25 Nov 2008 18:02:42 -0800 Received: by rv-out-0506.google.com with SMTP id f6so229407rvb.55 for ; Tue, 25 Nov 2008 18:02:41 -0800 (PST) MIME-Version: 1.0 Received: by 10.141.176.16 with SMTP id d16mr2672742rvp.120.1227664961821; Tue, 25 Nov 2008 18:02:41 -0800 (PST) In-Reply-To: <20081118125838.0613C412301@localhost> References: <20081118125838.0613C412301@localhost> Date: Wed, 26 Nov 2008 19:17:00 -0000 Message-ID: Subject: Re: [RFA] dummy frame handling cleanup, plus inferior fun call signal handling improvement From: Doug Evans To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=000e0cd14f56f3db0c045c8e0581 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: 2008-11/txt/msg00708.txt.bz2 --000e0cd14f56f3db0c045c8e0581 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-length: 893 ref: http://sourceware.org/ml/gdb-patches/2008-11/msg00454.html On Tue, Nov 18, 2008 at 4:58 AM, Doug Evans wrote: > [...] > There are two things this patch does: > 1) properly pop dummy frames more often > 2) make the inferior resumable after an inferior function call gets a > signal without having to remember to do "signal 0" > [...] > Restoring stop_signal also has the benefit that if an inferior function > call is made after getting a signal, and the inferior function call > doesn't complete (e.g. has a breakpoint and doesn't complete right away), > the user can resume the program (after popping the inf fun call off the > stack) with "continue" without having to remember what the signal was > and remember to use "signal N". > [...] Hi. This patch is an update to the testcases for this patch, call-signal-resume.exp now tests for the above case. Comments? --000e0cd14f56f3db0c045c8e0581 Content-Type: text/plain; charset=US-ASCII; name="gdb-081125-infcall-tests-1.patch.txt" Content-Disposition: attachment; filename="gdb-081125-infcall-tests-1.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fnzbxiik0 Content-length: 17011 MjAwOC0xMS0yNSAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCSog Z2RiLmJhc2UvY2FsbC1zaWduYWwtcmVzdW1lLmV4cDogTmV3IGZpbGUuCgkq IGdkYi5iYXNlL2NhbGwtc2lnbmFscy5jOiBOZXcgZmlsZS4KCSogZ2RiLmJh c2UvdW53aW5kb25zaWduYWwuZXhwOiBOZXcgZmlsZS4KCSogZ2RiLmJhc2Uv dW53aW5kb25zaWduYWwuYzogTmV3IGZpbGUuCgpJbmRleDogY2FsbC1zaWdu YWwtcmVzdW1lLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl OiBjYWxsLXNpZ25hbC1yZXN1bWUuZXhwCmRpZmYgLU4gY2FsbC1zaWduYWwt cmVzdW1lLmV4cAotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6MDA6MDAg LTAwMDAKKysrIGNhbGwtc2lnbmFsLXJlc3VtZS5leHAJMjYgTm92IDIwMDgg MDE6NTE6MDQgLTAwMDAKQEAgLTAsMCArMSwxNTcgQEAKKyMgQ29weXJpZ2h0 IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCisKKyMgVGVzdCBpbmZlcmlvciByZXN1bXB0aW9uIGFmdGVy IGRpc2NhcmRpbmcgYSBoYW5kLWNhbGxlZCBmdW5jdGlvbi4KKyMgVGhlcmUg YXJlIHR3byB0aGluZ3MgdG8gdGVzdC4KKyMgMSkgSW5mZXJpb3Igc3RvcHMg bm9ybWFsbHkuICBVcG9uIHJlc3VtcHRpb24gaXQgc2hvdWxkIGNvbnRpbnVl IG5vcm1hbGx5LAorIyAgICByZWdhcmRsZXNzIG9mIHdoYXRldmVyIHNpZ25h bCB0aGUgaGFuZC1jYWxsZWQgZnVuY3Rpb24gZ290LgorIyAyKSBJbmZlcmlv ciBpcyBzdG9wcGVkIGF0IGEgc2lnbmFsLiAgVXBvbiByZXN1bXB0aW9uIGl0 IHNob3VsZCBjb250aW51ZQorIyAgICB3aXRoIHRoYXQgc2lnbmFsLCByZWdh cmRsZXNzIG9mIHdoYXRldmVyIHRoZSBoYW5kLWNhbGxlZCBmdW5jdGlvbiBk aWQuCisKK2lmICR0cmFjZWxldmVsIHRoZW4geworCXN0cmFjZSAkdHJhY2Vs ZXZlbAorfQorCitpZiBbdGFyZ2V0X2luZm8gZXhpc3RzIGdkYixub2luZmVy aW9yaW9dIHsKKyAgICB2ZXJib3NlICJTa2lwcGluZyBjYWxsLXNpZ25hbC1y ZXN1bWUuZXhwIGJlY2F1c2Ugb2Ygbm8gZmlsZWlvIGNhcGFiaWxpdGllcy4i CisgICAgY29udGludWUKK30KKworc2V0IHBybXNfaWQgMAorc2V0IGJ1Z19p ZCAwCisKK3NldCB0ZXN0ZmlsZSAiY2FsbC1zaWduYWxzIgorc2V0IHNyY2Zp bGUgJHt0ZXN0ZmlsZX0uYworc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3Vi ZGlyfS8ke3Rlc3RmaWxlfQorCitpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3Jj ZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1 dGFibGUge2RlYnVnfV0gIT0gIiIgfSB7CisgICAgIHVudGVzdGVkIGNhbGwt c2lnbmFsLXJlc3VtZS5leHAKKyAgICAgcmV0dXJuIC0xCit9CisKKyMgU29t ZSB0YXJnZXRzIGNhbid0IGRvIGZ1bmN0aW9uIGNhbGxzLCBzbyBkb24ndCBl dmVuIGJvdGhlciB3aXRoIHRoaXMKKyMgdGVzdC4KK2lmIFt0YXJnZXRfaW5m byBleGlzdHMgZ2RiLGNhbm5vdF9jYWxsX2Z1bmN0aW9uc10geworICAgIHNl dHVwX3hmYWlsICIqLSotKiIgMjQxNgorICAgIGZhaWwgIlRoaXMgdGFyZ2V0 IGNhbiBub3QgY2FsbCBmdW5jdGlvbnMiCisgICAgY29udGludWUKK30KKwor cHJvYyBnZXRfZHVtbXlfZnJhbWVfbnVtYmVyIHsgfSB7CisgIGdsb2JhbCBn ZGJfcHJvbXB0CisKKyAgc2VuZF9nZGIgImJ0XG4iCisgIGdkYl9leHBlY3Qg eworICAgIC1yZSAiIyhcWzAtOVxdKikgKjxmdW5jdGlvbiBjYWxsZWQgZnJv bSBnZGI+LiokZ2RiX3Byb21wdCAkIgorICAgICAgeworCXJldHVybiAkZXhw ZWN0X291dCgxLHN0cmluZykKKyAgICAgIH0KKyAgICAtcmUgIiRnZGJfcHJv bXB0ICQiCisgICAgICB7CisJcmV0dXJuICIiCisgICAgICB9CisgICAgdGlt ZW91dAorICAgICAgeworCXJldHVybiAiIgorICAgICAgfQorICB9CisgIHJl dHVybiAiIgorfQorCisjIFN0YXJ0IHdpdGggYSBmcmVzaCBnZGIuCisKK2dk Yl9leGl0CitnZGJfc3RhcnQKK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNk aXIvJHN1YmRpcgorZ2RiX2xvYWQgJHtiaW5maWxlfQorCitpZiB7ICFbcnVu dG9fbWFpbl0gfSB7CisgICAgZmFpbCAiQ2FuJ3QgcnVuIHRvIG1haW4iCisg ICAgcmV0dXJuIDAKK30KKworZ2RiX3Rlc3QgImJyZWFrIHN0b3Bfb25lIiAi QnJlYWtwb2ludCBcWzAtOVxdKiBhdCAuKiIKK2dkYl90ZXN0ICJjb250aW51 ZSIgIkNvbnRpbnVpbmcuKkJyZWFrcG9pbnQgXFswLTlcXSosIHN0b3Bfb25l LioiIFwKKyAgICAiY29udGludWUgdG8gYnJlYWtwb2ludCBhdCBzdG9wX29u ZSIKKworIyBDYWxsIGZ1bmN0aW9uIChjYXVzaW5nIHRoZSBwcm9ncmFtIHRv IGdldCBhIHNpZ25hbCksIGFuZCBzZWUgaWYgZ2RiIGhhbmRsZXMKKyMgaXQg cHJvcGVybHkuCitnZGJfdGVzdF9tdWx0aXBsZSAiY2FsbCBnZW5fc2lnbmFs ICgpIiBcCisJImNhbGwtc2lnbmFsLXJlc3VtZSwgaW5mZXJpb3IgZnVuY3Rp b24gY2FsbCBzaWduYWxlZCIgeworICAgIC1yZSAiXFtcclxuXF0qbm8gc2ln bmFsXFtcclxuXF0rJGdkYl9wcm9tcHQgJCIgeworCXVuc3VwcG9ydGVkICJj YWxsLXNpZ25hbC1yZXN1bWUsIGluZmVyaW9yIGZ1bmN0aW9uIGNhbGwgc2ln bmFsZWQiCisJcmV0dXJuIDAKKyAgICB9CisgICAgLXJlICJcW1xyXG5cXSpU aGUgcHJvZ3JhbSBiZWluZyBkZWJ1Z2dlZCB3YXMgc2lnbmFsZWQuKlxbXHJc blxdKyRnZGJfcHJvbXB0ICQiIHsKKwlwYXNzICJjYWxsLXNpZ25hbC1yZXN1 bWUsIGluZmVyaW9yIGZ1bmN0aW9uIGNhbGwgc2lnbmFsZWQiCisgICAgfQor fQorCitzZXQgZnJhbWVfbnVtYmVyIFtnZXRfZHVtbXlfZnJhbWVfbnVtYmVy XQoraWYgeyAiJGZyYW1lX251bWJlciIgPT0gIiIgfSB7CisgICAgZmFpbCAi Y2FsbC1zaWduYWwtcmVzdW1lLCBkdW1teSBzdGFjayBmcmFtZSBudW1iZXIi CisgICAgc2V0dXBfeGZhaWwgIiotKi0qIgorfSBlbHNlIHsKKyAgICBwYXNz ICJjYWxsLXNpZ25hbC1yZXN1bWUsIGR1bW15IHN0YWNrIGZyYW1lIG51bWJl ciIKK30KKworIyBQb3AgdGhlIGR1bW15IGZyYW1lLgorZ2RiX3Rlc3QgImZy YW1lICRmcmFtZV9udW1iZXIiICIiCitnZGJfdGVzdCAic2V0IGNvbmZpcm0g b2ZmIiAiIgorZ2RiX3Rlc3QgInJldHVybiIgIiIKKworIyBSZXN1bWUgZXhl Y3V0aW9uLCB0aGUgcHJvZ3JhbSBzaG91bGQgY29udGludWUgd2l0aG91dCBh bnkgc2lnbmFsLgorCitnZGJfdGVzdCAiYnJlYWsgc3RvcF90d28iICJCcmVh a3BvaW50IFxbMC05XF0qIGF0IC4qIgorZ2RiX3Rlc3QgImNvbnRpbnVlIiAi QnJlYWtwb2ludCBcWzAtOVxdKiwgc3RvcF90d28uKiIgXAorICAgICJjb250 aW51ZSB0byBicmVha3BvaW50IGF0IHN0b3BfdHdvIgorCisjIENvbnRpbnVl IGFnYWluLCB3ZSBzaG91bGQgZ2V0IGEgc2lnbmFsLgorCitnZGJfdGVzdCAi Y29udGludWUiICJQcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCAuKiIgXAorICAg ICJjb250aW51ZSB0byByZWNlaXB0IG9mIHNpZ25hbCIKKworIyBIYW5kIGNh bGwgYW5vdGhlciBmdW5jdGlvbiB0aGF0IHByZW1hdHVyZWx5IHN0b3BzLAor IyB0aGVuIG1hbnVhbGx5IHBvcCB0aGUgZHVtbXkgc3RhY2sgZnJhbWUuCisK K2dkYl90ZXN0ICJicmVhayBudWxsX2hhbmRfY2FsbCIgIkJyZWFrcG9pbnQg XFswLTlcXSogYXQgLioiCitnZGJfdGVzdCAiY2FsbCBudWxsX2hhbmRfY2Fs bCAoKSIgIkJyZWFrcG9pbnQgXFswLTlcXSosIG51bGxfaGFuZF9jYWxsLioi IFwKKyAgICAibnVsbF9oYW5kX2NhbGwiCisKK3NldCBmcmFtZV9udW1iZXIg W2dldF9kdW1teV9mcmFtZV9udW1iZXJdCitpZiB7ICIkZnJhbWVfbnVtYmVy IiA9PSAiIiB9IHsKKyAgICBmYWlsICJjYWxsLXNpZ25hbC1yZXN1bWUsIGR1 bW15IHN0YWNrIGZyYW1lIG51bWJlciIKKyAgICBzZXR1cF94ZmFpbCAiKi0q LSoiCit9IGVsc2UgeworICAgIHBhc3MgImNhbGwtc2lnbmFsLXJlc3VtZSwg ZHVtbXkgc3RhY2sgZnJhbWUgbnVtYmVyIgorfQorCisjIFBvcCB0aGUgZHVt bXkgZnJhbWUuCitnZGJfdGVzdCAiZnJhbWUgJGZyYW1lX251bWJlciIgIiIK K2dkYl90ZXN0ICJzZXQgY29uZmlybSBvZmYiICIiCitnZGJfdGVzdCAicmV0 dXJuIiAiIgorCisjIENvbnRpbnVlIGFnYWluLCB0aGlzIHRpbWUgd2Ugc2hv dWxkIGdldCB0byB0aGUgc2lnbmFsIGhhbmRsZXIuCisKK2dkYl90ZXN0ICJi cmVhayBoYW5kbGVfc2lnbmFsIiAiQnJlYWtwb2ludCBcWzAtOVxdKiBhdCAu KiIKK2dkYl90ZXN0ICJjb250aW51ZSIgIkJyZWFrcG9pbnQgXFswLTlcXSos IGhhbmRsZV9zaWduYWwuKiIgXAorICAgICJjb250aW51ZSB0byBicmVha3Bv aW50IGF0IGhhbmRsZV9zaWduYWwiCisKKyMgQ29udGludWUgb25lIGxhc3Qg dGltZSwgdGhlIHByb2dyYW0gc2hvdWxkIGV4aXQgbm9ybWFsbHkuCisKK2dk Yl90ZXN0ICJjb250aW51ZSIgIlByb2dyYW0gZXhpdGVkIG5vcm1hbGx5LiIg XAorICAgICJjb250aW51ZSB0byBwcm9ncmFtIGV4aXQiCisKK3JldHVybiAw CkluZGV4OiBjYWxsLXNpZ25hbHMuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ClJDUyBmaWxlOiBjYWxsLXNpZ25hbHMuYwpkaWZmIC1OIGNhbGwtc2lnbmFs cy5jCi0tLSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAor KysgY2FsbC1zaWduYWxzLmMJMjYgTm92IDIwMDggMDE6NTE6MDQgLTAwMDAK QEAgLTAsMCArMSw4OSBAQAorLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9m IEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKworICAgQ29weXJpZ2h0IDIwMDgg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAg IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCisKKy8qIFN1cHBvcnQgcHJvZ3JhbSBmb3IgdGVz dGluZyBoYW5kbGluZyBvZiBpbmZlcmlvciBmdW5jdGlvbiBjYWxscworICAg aW4gdGhlIHByZXNlbmNlIG9mIHNpZ25hbHMuICAqLworCisjaW5jbHVkZSA8 c3RkaW8uaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDx1bmlz dGQuaD4KKwordm9pZAoraGFuZGxlX3NpZ25hbCAoaW50IHNpZykKK3sKK30K Kwordm9pZAorZ2VuX3NpZ25hbCAoKQoreworICAvKiBBY2NvcmRpbmcgdG8g c2lnYWxsLmV4cCwgU0lHQUJSVCBpcyBhbHdheXMgc3VwcG9ydGVkLiAgKi8K KyNpZmRlZiBTSUdBQlJUCisgIGtpbGwgKGdldHBpZCAoKSwgU0lHQUJSVCk7 CisjZW5kaWYKKyAgLyogSWYgd2UgZ2V0IGhlcmUgd2UgY291bGRuJ3QgZ2Vu ZXJhdGUgYSBzaWduYWwsIHRlbGwgZGVqYWdudS4gICovCisgIHByaW50ZiAo Im5vIHNpZ25hbFxuIik7Cit9CisKKy8qIEVhc3kgcGxhY2UgdG8gc2V0IGEg YnJlYWtwb2ludC4gICovCisKK3ZvaWQKK3N0b3Bfb25lICgpCit7Cit9CisK K3ZvaWQKK3N0b3BfdHdvICgpCit7Cit9CisKK3ZvaWQKK251bGxfaGFuZF9j YWxsICgpCit7Cit9CisKK2ludAorbWFpbiAoKQoreworI2lmZGVmIHVzZXN0 dWJzCisgIHNldF9kZWJ1Z190cmFwcyAoKTsKKyAgYnJlYWtwb2ludCAoKTsK KyNlbmRpZgorCisjaWZkZWYgU0lHX1NFVE1BU0sKKyAgLyogRW5zdXJlIGFs bCB0aGUgc2lnbmFscyBhcmVuJ3QgYmxvY2tlZC4KKyAgICAgVGhlIGVudmly b25tZW50IGluIHdoaWNoIHRoZSB0ZXN0c3VpdGUgaXMgcnVuIG1heSBoYXZl IGJsb2NrZWQgc29tZQorICAgICBmb3Igd2hhdGV2ZXIgcmVhc29uLiAgKi8K KyAgeworICAgIHNpZ3NldF90IG5ld3NldDsKKyAgICBzaWdlbXB0eXNldCAo Jm5ld3NldCk7CisgICAgc2lncHJvY21hc2sgKFNJR19TRVRNQVNLLCAmbmV3 c2V0LCBOVUxMKTsKKyAgfQorI2VuZGlmCisKKyAgc2lnbmFsIChTSUdBQlJU LCBoYW5kbGVfc2lnbmFsKTsKKworICAvKiBTdG9wIGhlcmUgc28gd2UgY2Fu IGhhbmQtY2FsbCBnZW5fc2lnbmFsLiAgKi8KKyAgc3RvcF9vbmUgKCk7CisK KyAgLyogV2hlbiB3ZSdyZSByZXN1bWVkIHN0b3AgaGVyZS4gICovCisgIHN0 b3BfdHdvICgpOworCisgIC8qIFdoZW4gd2UncmUgcmVzdW1lZCB3ZSBnZW5l cmF0ZSBhIHNpZ25hbCBvdXJzZWx2ZXMuICAqLworICBnZW5fc2lnbmFsICgp OworCisgIHJldHVybiAwOworfQpJbmRleDogdW53aW5kb25zaWduYWwuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiB1bndpbmRvbnNpZ25h bC5jCmRpZmYgLU4gdW53aW5kb25zaWduYWwuYwotLS0gL2Rldi9udWxsCTEg SmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIHVud2luZG9uc2lnbmFsLmMJ MjYgTm92IDIwMDggMDE6NTE6MDQgLTAwMDAKQEAgLTAsMCArMSw2NSBAQAor LyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1 Z2dlci4KKworICAgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cisg ICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisK Ky8qIFN1cHBvcnQgcHJvZ3JhbSBmb3IgdGVzdGluZyB1bndpbmRvbnNpZ25h bC4gICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHNpZ25h bC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCit2b2lkCitnZW5fc2lnbmFs ICgpCit7CisgIC8qIEFjY29yZGluZyB0byBzaWdhbGwuZXhwLCBTSUdBQlJU IGlzIGFsd2F5cyBzdXBwb3J0ZWQuICAqLworI2lmZGVmIFNJR0FCUlQKKyAg a2lsbCAoZ2V0cGlkICgpLCBTSUdBQlJUKTsKKyNlbmRpZgorICAvKiBJZiB3 ZSBnZXQgaGVyZSB3ZSBjb3VsZG4ndCBnZW5lcmF0ZSBhIHNpZ25hbCwgdGVs bCBkZWphZ251LiAgKi8KKyAgcHJpbnRmICgibm8gc2lnbmFsXG4iKTsKK30K KworLyogRWFzeSBwbGFjZSB0byBzZXQgYSBicmVha3BvaW50LiAgKi8KKwor dm9pZAorc3RvcF9oZXJlICgpCit7Cit9CisKK2ludAorbWFpbiAoKQorewor I2lmZGVmIHVzZXN0dWJzCisgIHNldF9kZWJ1Z190cmFwcyAoKTsKKyAgYnJl YWtwb2ludCAoKTsKKyNlbmRpZgorCisjaWZkZWYgU0lHX1NFVE1BU0sKKyAg LyogRW5zdXJlIGFsbCB0aGUgc2lnbmFscyBhcmVuJ3QgYmxvY2tlZC4KKyAg ICAgVGhlIGVudmlyb25tZW50IGluIHdoaWNoIHRoZSB0ZXN0c3VpdGUgaXMg cnVuIG1heSBoYXZlIGJsb2NrZWQgc29tZQorICAgICBmb3Igd2hhdGV2ZXIg cmVhc29uLiAgKi8KKyAgeworICAgIHNpZ3NldF90IG5ld3NldDsKKyAgICBz aWdlbXB0eXNldCAoJm5ld3NldCk7CisgICAgc2lncHJvY21hc2sgKFNJR19T RVRNQVNLLCAmbmV3c2V0LCBOVUxMKTsKKyAgfQorI2VuZGlmCisKKyAgLyog U3RvcCBoZXJlIHNvIHdlIGNhbiBoYW5kLWNhbGwgZ2VuX3NpZ25hbC4gICov CisgIHN0b3BfaGVyZSAoKTsKKworICByZXR1cm4gMDsKK30KSW5kZXg6IHVu d2luZG9uc2lnbmFsLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm aWxlOiB1bndpbmRvbnNpZ25hbC5leHAKZGlmZiAtTiB1bndpbmRvbnNpZ25h bC5leHAKLS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAw CisrKyB1bndpbmRvbnNpZ25hbC5leHAJMjYgTm92IDIwMDggMDE6NTE6MDQg LTAwMDAKQEAgLTAsMCArMSw5OCBAQAorIyBDb3B5cmlnaHQgMjAwOCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworIyBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9m IHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KworaWYgJHRyYWNlbGV2ZWwgdGhlbiB7CisJc3RyYWNlICR0cmFjZWxldmVs Cit9CisKK2lmIFt0YXJnZXRfaW5mbyBleGlzdHMgZ2RiLG5vaW5mZXJpb3Jp b10geworICAgIHZlcmJvc2UgIlNraXBwaW5nIHVud2luZG9uc2lnbmFsLmV4 cCBiZWNhdXNlIG9mIG5vIGZpbGVpbyBjYXBhYmlsaXRpZXMuIgorICAgIGNv bnRpbnVlCit9CisKK3NldCBwcm1zX2lkIDAKK3NldCBidWdfaWQgMAorCitz ZXQgdGVzdGZpbGUgInVud2luZG9uc2lnbmFsIgorc2V0IHNyY2ZpbGUgJHt0 ZXN0ZmlsZX0uYworc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8k e3Rlc3RmaWxlfQorCitpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8k e3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFibGUg e2RlYnVnfV0gIT0gIiIgfSB7CisgICAgIHVudGVzdGVkIHVud2luZG9uc2ln bmFsLmV4cAorICAgICByZXR1cm4gLTEKK30KKworIyBTb21lIHRhcmdldHMg Y2FuJ3QgZG8gZnVuY3Rpb24gY2FsbHMsIHNvIGRvbid0IGV2ZW4gYm90aGVy IHdpdGggdGhpcworIyB0ZXN0LgoraWYgW3RhcmdldF9pbmZvIGV4aXN0cyBn ZGIsY2Fubm90X2NhbGxfZnVuY3Rpb25zXSB7CisgICAgc2V0dXBfeGZhaWwg IiotKi0qIiAyNDE2CisgICAgZmFpbCAiVGhpcyB0YXJnZXQgY2FuIG5vdCBj YWxsIGZ1bmN0aW9ucyIKKyAgICBjb250aW51ZQorfQorCisjIFN0YXJ0IHdp dGggYSBmcmVzaCBnZGIuCisKK2dkYl9leGl0CitnZGJfc3RhcnQKK2dkYl9y ZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgorZ2RiX2xvYWQgJHti aW5maWxlfQorCitpZiB7ICFbcnVudG9fbWFpbl0gfSB7CisgICAgZmFpbCAi Q2FuJ3QgcnVuIHRvIG1haW4iCisgICAgcmV0dXJuIDAKK30KKworZ2RiX3Rl c3QgImJyZWFrIHN0b3BfaGVyZSIgIkJyZWFrcG9pbnQgXFswLTlcXSogYXQg LioiCitnZGJfdGVzdCAiY29udGludWUiICJDb250aW51aW5nLipCcmVha3Bv aW50IFxbMC05XF0qLCBzdG9wX2hlcmUuKiIgXAorICAgICJjb250aW51ZSB0 byBicmVha3BvaW50IGF0IHN0b3BfaGVyZSIKKworIyBUdXJuIG9uIHVud2lu ZG9uc2lnbmFsLgorZ2RiX3Rlc3QgInNldCB1bndpbmRvbnNpZ25hbCBvbiIg XAorCSIiIFwKKwkic2V0dGluZyB1bndpbmRvbnNpZ25hbCIKK2dkYl90ZXN0 ICJzaG93IHVud2luZG9uc2lnbmFsIiBcCisJIlVud2luZGluZyBvZiBzdGFj ayAuKiBpcyBvbi4iIFwKKwkic2hvd2luZyB1bndpbmRvbnNpZ25hbCIKKwor IyBDYWxsIGZ1bmN0aW9uIChjYXVzaW5nIHRoZSBwcm9ncmFtIHRvIGdldCBh IHNpZ25hbCksIGFuZCBzZWUgaWYgZ2RiIGhhbmRsZXMKKyMgaXQgcHJvcGVy bHkuCitnZGJfdGVzdF9tdWx0aXBsZSAiY2FsbCBnZW5fc2lnbmFsICgpIiBc CisJInVud2luZG9uc2lnbmFsLCBpbmZlcmlvciBmdW5jdGlvbiBjYWxsIHNp Z25hbGVkIiB7CisgICAgLXJlICJcW1xyXG5cXSpubyBzaWduYWxcW1xyXG5c XSskZ2RiX3Byb21wdCAkIiB7CisJdW5zdXBwb3J0ZWQgInVud2luZG9uc2ln bmFsLCBpbmZlcmlvciBmdW5jdGlvbiBjYWxsIHNpZ25hbGVkIgorCXJldHVy biAwCisgICAgfQorICAgIC1yZSAiXFtcclxuXF0qVGhlIHByb2dyYW0gYmVp bmcgZGVidWdnZWQgd2FzIHNpZ25hbGVkLipcW1xyXG5cXSskZ2RiX3Byb21w dCAkIiB7CisJcGFzcyAidW53aW5kb25zaWduYWwsIGluZmVyaW9yIGZ1bmN0 aW9uIGNhbGwgc2lnbmFsZWQiCisgICAgfQorfQorCisjIFZlcmlmeSB0aGUg c3RhY2sgZ290IHVud291bmQuCitnZGJfdGVzdCAiYnQiIFwKKyAgICAiIzAg KlxbeDAtOWEtZiBpblxdKnN0b3BfaGVyZSBcXCguKlxcKSBhdCAuKiMxICpc W3gwLTlhLWYgaW5cXSptYWluIFxcKC4qXFwpIGF0IC4qIiBcCisJInVud2lu ZG9uc2lnbmFsLCBzdGFjayB1bndvdW5kIgorCisjIFZlcmlmeSB0aGUgZHVt bXkgZnJhbWUgZ290IHJlbW92ZWQgZnJvbSBkdW1teV9mcmFtZV9zdGFjay4K K2dkYl90ZXN0X211bHRpcGxlICJtYWludCBwcmludCBkdW1teS1mcmFtZXMi IFwKKwkidW53aW5kb25zaWduYWwsIGR1bW15IGZyYW1lIHJlbW92ZWQiIHsK KyAgICAtcmUgIlxbXHJcblxdKi4qc3RhY2s9Lipjb2RlPS4qXFtcclxuXF0r JGdkYl9wcm9tcHQgJCIgeworCWZhaWwgInVud2luZG9uc2lnbmFsLCBkdW1t eSBmcmFtZSByZW1vdmVkIgorICAgIH0KKyAgICAtcmUgIlxbXHJcblxdKyRn ZGJfcHJvbXB0ICQiIHsKKwlwYXNzICJ1bndpbmRvbnNpZ25hbCwgZHVtbXkg ZnJhbWUgcmVtb3ZlZCIKKyAgICB9Cit9CisKK3JldHVybiAwCg== --000e0cd14f56f3db0c045c8e0581--