From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1401 invoked by alias); 12 Jan 2011 17:23:43 -0000 Received: (qmail 1381 invoked by uid 22791); 12 Jan 2011 17:23:36 -0000 X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (74.125.121.67) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 12 Jan 2011 17:23:29 +0000 Received: from wpaz33.hot.corp.google.com (wpaz33.hot.corp.google.com [172.24.198.97]) by smtp-out.google.com with ESMTP id p0CHNP1q002112 for ; Wed, 12 Jan 2011 09:23:26 -0800 Received: from qwk4 (qwk4.prod.google.com [10.241.195.132]) by wpaz33.hot.corp.google.com with ESMTP id p0CHM2JY029276 for ; Wed, 12 Jan 2011 09:23:24 -0800 Received: by qwk4 with SMTP id 4so839156qwk.4 for ; Wed, 12 Jan 2011 09:23:24 -0800 (PST) Received: by 10.229.188.21 with SMTP id cy21mr1086206qcb.16.1294853004003; Wed, 12 Jan 2011 09:23:24 -0800 (PST) MIME-Version: 1.0 Received: by 10.220.7.132 with HTTP; Wed, 12 Jan 2011 09:22:53 -0800 (PST) In-Reply-To: <4D2DDD61.6040101@codesourcery.com> References: <20110111232641.AE3D5190C55@elbrus2.mtv.corp.google.com> <4D2D3E94.4070509@codesourcery.com> <201101121003.37871.pedro@codesourcery.com> <4D2DDD61.6040101@codesourcery.com> From: Paul Pluzhnikov Date: Wed, 12 Jan 2011 17:33:00 -0000 Message-ID: Subject: Re: [patch] Add tests for JIT debugging interface To: Yao Qi Cc: Pedro Alves , gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0016e686cd325708c00499a97585 X-System-Of-Record: true 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-01/txt/msg00267.txt.bz2 --0016e686cd325708c00499a97585 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1471 On Wed, Jan 12, 2011 at 8:57 AM, Yao Qi wrote: > There are still two failures, which are not about 'set args' in gdbserver. > > FAIL: gdb.base/jit.exp: info function jit_function > FAIL: gdb.base/jit.exp: info function jit_function Yes, I see that as well. > info function jit_function^M > All functions matching regular expression "jit_function":^M > (gdb) FAIL: gdb.base/jit.exp: info function jit_function > > In gdb.log, I find something strange, > > (gdb) continue^M > Continuing.^M > jit_inferior_init, registering_code =3D 0^M > jit_inferior_init, reg_addr =3D 0x80486c4^M > jit_inferior_init, jit_descriptor_addr =3D 0x804a040^M > Cannot remove breakpoints because program is no longer writable. <-- [1] And that. > There is no such error [1] in native gdb test. =A0I have no clue on this = so > far. That's alright -- I was going to fix this area (see "JIT interface slowness" in gdb@sourceware.org list), and this isn't the only problem -- I also noticed that we leak several jit_breakpoints on rerun. > We may re-write jit-main.c a little bit to compute the location of > jit-solib.so via getcwd() + argv[0], rather than passing arguments of its > location. Done slightly differently. I believe revised patch addresses all comments so far. Thanks, --=20 Paul Pluzhnikov 2011-01-12 Paul Pluzhnikov * gdb.base/jit.exp: New file. * gdb.base/jit-main.c: New file. * gdb.base/jit-solib.c: New file. --0016e686cd325708c00499a97585 Content-Type: text/plain; charset=US-ASCII; name="gdb-jit-tests-20110112.txt" Content-Disposition: attachment; filename="gdb-jit-tests-20110112.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_giuhzgfg0 Content-length: 15389 SW5kZXg6IHRlc3RzdWl0ZS9nZGIuYmFzZS9qaXQtbWFpbi5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KUkNTIGZpbGU6IHRlc3RzdWl0ZS9nZGIuYmFzZS9q aXQtbWFpbi5jCmRpZmYgLU4gdGVzdHN1aXRlL2dkYi5iYXNlL2ppdC1tYWlu LmMKLS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisr KyB0ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0LW1haW4uYwkxMiBKYW4gMjAxMSAx NzoxNzozMCAtMDAwMApAQCAtMCwwICsxLDIwMiBAQAorLyogVGhpcyB0ZXN0 IHByb2dyYW0gaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisK KyAgIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisg ICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgICAqLworCisvKiBT aW11bGF0ZSBsb2FkaW5nIG9mIEpJVCBjb2RlLiAgKi8KKworI2luY2x1ZGUg PGVsZi5oPgorI2luY2x1ZGUgPGxpbmsuaD4KKyNpbmNsdWRlIDxlcnJuby5o PgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+Cisj aW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNs dWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorI2luY2x1 ZGUgPHN5cy9zdGF0Lmg+CisKK3R5cGVkZWYgZW51bQoreworICBKSVRfTk9B Q1RJT04gPSAwLAorICBKSVRfUkVHSVNURVJfRk4sCisgIEpJVF9VTlJFR0lT VEVSX0ZOCit9IGppdF9hY3Rpb25zX3Q7CisKK3N0cnVjdCBqaXRfY29kZV9l bnRyeQoreworICBzdHJ1Y3Qgaml0X2NvZGVfZW50cnkgKm5leHRfZW50cnk7 CisgIHN0cnVjdCBqaXRfY29kZV9lbnRyeSAqcHJldl9lbnRyeTsKKyAgY29u c3QgY2hhciAqc3ltZmlsZV9hZGRyOworICB1aW50NjRfdCBzeW1maWxlX3Np emU7Cit9OworCitzdHJ1Y3Qgaml0X2Rlc2NyaXB0b3IKK3sKKyAgdWludDMy X3QgdmVyc2lvbjsKKyAgLyogVGhpcyB0eXBlIHNob3VsZCBiZSBqaXRfYWN0 aW9uc190LCBidXQgd2UgdXNlIHVpbnQzMl90CisgICAgIHRvIGJlIGV4cGxp Y2l0IGFib3V0IHRoZSBiaXR3aWR0aC4gICovCisgIHVpbnQzMl90IGFjdGlv bl9mbGFnOworICBzdHJ1Y3Qgaml0X2NvZGVfZW50cnkgKnJlbGV2YW50X2Vu dHJ5OworICBzdHJ1Y3Qgaml0X2NvZGVfZW50cnkgKmZpcnN0X2VudHJ5Owor fTsKKworLyogR0RCIHB1dHMgYSBicmVha3BvaW50IGluIHRoaXMgZnVuY3Rp b24uICAqLwordm9pZCBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIF9faml0 X2RlYnVnX3JlZ2lzdGVyX2NvZGUgKCkgeyB9CisKKy8qIE1ha2Ugc3VyZSB0 byBzcGVjaWZ5IHRoZSB2ZXJzaW9uIHN0YXRpY2FsbHksIGJlY2F1c2UgdGhl CisgICBkZWJ1Z2dlciBtYXkgY2hlY2sgdGhlIHZlcnNpb24gYmVmb3JlIHdl IGNhbiBzZXQgaXQuICAqLworc3RydWN0IGppdF9kZXNjcmlwdG9yIF9faml0 X2RlYnVnX2Rlc2NyaXB0b3IgPSB7IDEsIDAsIDAsIDAgfTsKKworc3RhdGlj IHZvaWQKK3VzYWdlIChjb25zdCBjaGFyICpjb25zdCBhcmd2MCkKK3sKKyAg ZnByaW50ZiAoc3RkZXJyLCAiVXNhZ2U6ICVzIGxpYnJhcnkgW2NvdW50XVxu IiwgYXJndjApOworICBleGl0ICgxKTsKK30KKworLyogVXBkYXRlIC5wX3Zh ZGRyIGFuZCAuc2hfYWRkciBhcyBpZiB0aGUgY29kZSB3YXMgSklUdGVkIHRv IEFERFIuICAqLworCitzdGF0aWMgdm9pZAordXBkYXRlX2xvY2F0aW9ucyAo Y29uc3Qgdm9pZCAqY29uc3QgYWRkciwgaW50IGlkeCkKK3sKKyAgY29uc3Qg RWxmVyAoRWhkcikgKmNvbnN0IGVoZHIgPSAoRWxmVyAoRWhkcikgKilhZGRy OworICBFbGZXIChTaGRyKSAqY29uc3Qgc2hkciA9IChFbGZXIChTaGRyKSAq KSgoY2hhciAqKWFkZHIgKyBlaGRyLT5lX3Nob2ZmKTsKKyAgRWxmVyAoUGhk cikgKmNvbnN0IHBoZHIgPSAoRWxmVyAoUGhkcikgKikoKGNoYXIgKilhZGRy ICsgZWhkci0+ZV9waG9mZik7CisgIGludCBpOworCisgIGZvciAoaSA9IDA7 IGkgPCBlaGRyLT5lX3BobnVtOyArK2kpCisgICAgaWYgKHBoZHJbaV0ucF90 eXBlID09IFBUX0xPQUQpCisgICAgICBwaGRyW2ldLnBfdmFkZHIgKz0gKEVs ZlcgKEFkZHIpKWFkZHI7CisKKyAgZm9yIChpID0gMDsgaSA8IGVoZHItPmVf c2hudW07ICsraSkKKyAgICB7CisgICAgICBpZiAoc2hkcltpXS5zaF90eXBl ID09IFNIVF9TVFJUQUIpCisgICAgICAgIHsKKyAgICAgICAgICAvKiBOb3Rl OiB3ZSB1cGRhdGUgYm90aCAuc3RydGFiIGFuZCAuZHluc3RyLiAgVGhlIGxh dHRlciB3b3VsZAorICAgICAgICAgICAgIG5vdCBiZSBjb3JyZWN0IGlmIHRo aXMgd2VyZSBhIHJlZ3VsYXIgc2hhcmVkIGxpYnJhcnkgKC5oYXNoCisgICAg ICAgICAgICAgd291bGQgYmUgd3JvbmcpLCBidXQgdGhpcyBpcyBhIHNpbXVs YXRpb24gLS0gdGhlIGxpYnJhcnkgaXMKKyAgICAgICAgICAgICBuZXZlciBl eHBvc2VkIHRvIHRoZSBkeW5hbWljIGxvYWRlciwgc28gaXQgYWxsIGVuZHMg dXAgb2suICAqLworICAgICAgICAgIGNoYXIgKmNvbnN0IHN0cnRhYiA9IChj aGFyICopKChFbGZXIChBZGRyKSlhZGRyICsgc2hkcltpXS5zaF9vZmZzZXQp OworICAgICAgICAgIGNoYXIgKmNvbnN0IHN0cnRhYl9lbmQgPSBzdHJ0YWIg KyBzaGRyW2ldLnNoX3NpemU7CisgICAgICAgICAgY2hhciAqcDsKKworICAg ICAgICAgIGZvciAocCA9IHN0cnRhYjsgcCA8IHN0cnRhYl9lbmQ7IHAgKz0g c3RybGVuIChwKSArIDEpCisgICAgICAgICAgICBpZiAoc3RyY21wIChwLCAi aml0X2Z1bmN0aW9uX1hYWFgiKSA9PSAwKQorICAgICAgICAgICAgICBzcHJp bnRmIChwLCAiaml0X2Z1bmN0aW9uXyUwNGQiLCBpZHgpOworICAgICAgICB9 CisKKyAgICAgIGlmIChzaGRyW2ldLnNoX2ZsYWdzICYgU0hGX0FMTE9DKQor ICAgICAgICBzaGRyW2ldLnNoX2FkZHIgKz0gKEVsZlcgKEFkZHIpKWFkZHI7 CisgICAgfQorfQorCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkKK3sKKyAgLyogVGhlc2UgdmFyaWFibGVzIGFyZSBoZXJlIHNvIHRoZXkg Y2FuIGVhc2lseSBiZSBzZXQgZnJvbSBqaXQuZXhwICAqLworICBjb25zdCBj aGFyICpsaWJuYW1lID0gTlVMTDsKKyAgaW50IGNvdW50ID0gMDsKKworICBj b3VudCA9IGNvdW50OyAgLyogZ2RiIGJyZWFrIGhlcmUgMCAgKi8KKworICBp ZiAoYXJnYyA8IDIpCisgICAgdXNhZ2UgKGFyZ3ZbMF0pOworICBlbHNlCisg ICAgeworICAgICAgaW50IGksIGZkOworICAgICAgc3RydWN0IHN0YXQgc3Q7 CisKKyAgICAgIGlmIChsaWJuYW1lID09IE5VTEwpCisgICAgICAgIC8qIE9u bHkgc2V0IGlmIG5vdCBhbHJlYWR5IHNldCBmcm9tIEdEQi4gICovCisgICAg ICAgIGxpYm5hbWUgPSBhcmd2WzFdOworCisgICAgICBpZiAoYXJnYyA+IDIg JiYgY291bnQgPT0gMCkKKyAgICAgICAgLyogT25seSBzZXQgaWYgbm90IGFs cmVhZHkgc2V0IGZyb20gR0RCLiAgKi8KKyAgICAgICAgY291bnQgPSBhdG9p IChhcmd2WzJdKTsKKworICAgICAgcHJpbnRmICgiJXM6JWQ6IGxpYm5hbWUg PSAlcywgY291bnQgPSAlZFxuIiwgX19GSUxFX18sIF9fTElORV9fLAorICAg ICAgICAgICAgICBsaWJuYW1lLCBjb3VudCk7CisKKyAgICAgIGlmICgoZmQg PSBvcGVuIChsaWJuYW1lLCBPX1JET05MWSkpID09IC0xKQorICAgICAgICB7 CisgICAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAib3BlbiAoXCIlc1wiLCBP X1JET05MWSk6ICVzXG4iLCBsaWJuYW1lLAorICAgICAgICAgICAgICAgICAg IHN0cmVycm9yIChlcnJubykpOworICAgICAgICAgIGV4aXQgKDEpOworICAg ICAgICB9CisKKyAgICAgIGlmIChmc3RhdCAoZmQsICZzdCkgIT0gMCkKKyAg ICAgICAgeworICAgICAgICAgIGZwcmludGYgKHN0ZGVyciwgImZzdGF0IChc IiVkXCIpOiAlc1xuIiwgZmQsIHN0cmVycm9yIChlcnJubykpOworICAgICAg ICAgIGV4aXQgKDEpOworICAgICAgICB9CisKKyAgICAgIGZvciAoaSA9IDA7 IGkgPCBjb3VudDsgKytpKQorICAgICAgICB7CisgICAgICAgICAgY29uc3Qg dm9pZCAqY29uc3QgYWRkciA9IG1tYXAgKDAsIHN0LnN0X3NpemUsIFBST1Rf UkVBRHxQUk9UX1dSSVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNQVBfUFJJVkFURSwgZmQsIDApOworICAgICAgICAg IHN0cnVjdCBqaXRfY29kZV9lbnRyeSAqY29uc3QgZW50cnkgPSBjYWxsb2Mg KDEsIHNpemVvZiAoKmVudHJ5KSk7CisKKyAgICAgICAgICBpZiAoYWRkciA9 PSBNQVBfRkFJTEVEKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBm cHJpbnRmIChzdGRlcnIsICJtbWFwOiAlc1xuIiwgc3RyZXJyb3IgKGVycm5v KSk7CisgICAgICAgICAgICAgIGV4aXQgKDEpOworICAgICAgICAgICAgfQor CisgICAgICAgICAgdXBkYXRlX2xvY2F0aW9ucyAoYWRkciwgaSk7CisKKyAg ICAgICAgICAvKiBMaW5rIGVudHJ5IGF0IHRoZSBlbmQgb2YgdGhlIGxpc3Qu ICAqLworICAgICAgICAgIGVudHJ5LT5zeW1maWxlX2FkZHIgPSAoY29uc3Qg Y2hhciAqKWFkZHI7CisgICAgICAgICAgZW50cnktPnN5bWZpbGVfc2l6ZSA9 IHN0LnN0X3NpemU7CisgICAgICAgICAgZW50cnktPnByZXZfZW50cnkgPSBf X2ppdF9kZWJ1Z19kZXNjcmlwdG9yLnJlbGV2YW50X2VudHJ5OworICAgICAg ICAgIF9faml0X2RlYnVnX2Rlc2NyaXB0b3IucmVsZXZhbnRfZW50cnkgPSBl bnRyeTsKKworICAgICAgICAgIGlmIChlbnRyeS0+cHJldl9lbnRyeSAhPSBO VUxMKQorICAgICAgICAgICAgZW50cnktPnByZXZfZW50cnktPm5leHRfZW50 cnkgPSBlbnRyeTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBfX2pp dF9kZWJ1Z19kZXNjcmlwdG9yLmZpcnN0X2VudHJ5ID0gZW50cnk7CisKKyAg ICAgICAgICAvKiBOb3RpZnkgR0RCLiAgKi8KKyAgICAgICAgICBfX2ppdF9k ZWJ1Z19kZXNjcmlwdG9yLmFjdGlvbl9mbGFnID0gSklUX1JFR0lTVEVSX0ZO OworICAgICAgICAgIF9faml0X2RlYnVnX3JlZ2lzdGVyX2NvZGUgKCk7Cisg ICAgICAgIH0KKworICAgICAgaSA9IDA7ICAvKiBnZGIgYnJlYWsgaGVyZSAx ICovCisKKyAgICAgIC8qIE5vdyB1bnJlZ2lzdGVyIHRoZW0gYWxsIGluIHJl dmVyc2Ugb3JkZXIuICAqLworICAgICAgd2hpbGUgKF9faml0X2RlYnVnX2Rl c2NyaXB0b3IucmVsZXZhbnRfZW50cnkgIT0gTlVMTCkKKyAgICAgICAgewor ICAgICAgICAgIHN0cnVjdCBqaXRfY29kZV9lbnRyeSAqY29uc3QgZW50cnkg PQorICAgICAgICAgICAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5yZWxldmFu dF9lbnRyeTsKKyAgICAgICAgICBzdHJ1Y3Qgaml0X2NvZGVfZW50cnkgKmNv bnN0IHByZXZfZW50cnkgPSBlbnRyeS0+cHJldl9lbnRyeTsKKworICAgICAg ICAgIGlmIChwcmV2X2VudHJ5ICE9IE5VTEwpCisgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgIHByZXZfZW50cnktPm5leHRfZW50cnkgPSBOVUxMOwor ICAgICAgICAgICAgICBlbnRyeS0+cHJldl9lbnRyeSA9IE5VTEw7CisgICAg ICAgICAgICB9CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgX19qaXRf ZGVidWdfZGVzY3JpcHRvci5maXJzdF9lbnRyeSA9IE5VTEw7CisKKyAgICAg ICAgICAvKiBOb3RpZnkgR0RCLiAgKi8KKyAgICAgICAgICBfX2ppdF9kZWJ1 Z19kZXNjcmlwdG9yLmFjdGlvbl9mbGFnID0gSklUX1VOUkVHSVNURVJfRk47 CisgICAgICAgICAgX19qaXRfZGVidWdfcmVnaXN0ZXJfY29kZSAoKTsKKwor ICAgICAgICAgIF9faml0X2RlYnVnX2Rlc2NyaXB0b3IucmVsZXZhbnRfZW50 cnkgPSBwcmV2X2VudHJ5OworICAgICAgICAgIGZyZWUgKGVudHJ5KTsKKyAg ICAgICAgfQorICAgIH0KKyAgcmV0dXJuIDA7ICAvKiBnZGIgYnJlYWsgaGVy ZSAyICAqLworfQpJbmRleDogdGVzdHN1aXRlL2dkYi5iYXNlL2ppdC1zb2xp Yi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IHRlc3RzdWl0 ZS9nZGIuYmFzZS9qaXQtc29saWIuYwpkaWZmIC1OIHRlc3RzdWl0ZS9nZGIu YmFzZS9qaXQtc29saWIuYwotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6 MDA6MDAgLTAwMDAKKysrIHRlc3RzdWl0ZS9nZGIuYmFzZS9qaXQtc29saWIu YwkxMiBKYW4gMjAxMSAxNzoxNzozMCAtMDAwMApAQCAtMCwwICsxLDIyIEBA CisvKiBUaGlzIHRlc3QgcHJvZ3JhbSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdO VSBkZWJ1Z2dlci4KKworICAgQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KyAgICovCisKKy8qIFRoaXMgc2ltdWxhdGVzIGEgSklUIGxpYnJhcnkuICBU aGUgZnVuY3Rpb24gaXMgInJlbmFtZWQiIGFmdGVyIGJlaW5nCisgICBsb2Fk ZWQgaW50byBtZW1vcnkuICAqLworCitpbnQgaml0X2Z1bmN0aW9uX1hYWFgo KSB7IHJldHVybiA0MjsgfQpJbmRleDogdGVzdHN1aXRlL2dkYi5iYXNlL2pp dC5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogdGVzdHN1 aXRlL2dkYi5iYXNlL2ppdC5leHAKZGlmZiAtTiB0ZXN0c3VpdGUvZ2RiLmJh c2Uvaml0LmV4cAotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6MDA6MDAg LTAwMDAKKysrIHRlc3RzdWl0ZS9nZGIuYmFzZS9qaXQuZXhwCTEyIEphbiAy MDExIDE3OjE3OjMwIC0wMDAwCkBAIC0wLDAgKzEsMTA5IEBACisjIENvcHly aWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisj IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorCitpZiAkdHJhY2VsZXZlbCB7CisgICAgc3RyYWNl ICR0cmFjZWxldmVsCit9CisKK2lmIHtbc2tpcF9zaGxpYl90ZXN0c119IHsK KyAgICB1bnRlc3RlZCBqaXQuZXhwCisgICAgcmV0dXJuIC0xCit9CisKK2lm IHtbZ2V0X2NvbXBpbGVyX2luZm8gbm90LXVzZWRdfSB7CisgICAgd2Fybmlu ZyAiQ291bGQgbm90IGdldCBjb21waWxlciBpbmZvIgorICAgIHVudGVzdGVk IGppdC5leHAKKyAgICByZXR1cm4gMQorfQorCisjCisjIHRlc3QgcnVubmlu ZyBwcm9ncmFtcworIworCitzZXQgdGVzdGZpbGUgaml0LW1haW4KK3NldCBz cmNmaWxlICR7dGVzdGZpbGV9LmMKK3NldCBiaW5maWxlICR7b2JqZGlyfS8k e3N1YmRpcn0vJHt0ZXN0ZmlsZX0KK2lmICB7IFtnZGJfY29tcGlsZSAiJHtz cmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhl Y3V0YWJsZSB7ZGVidWd9XSAhPSAiIiB9IHsKKyAgICB1bnRlc3RlZCBqaXQu ZXhwCisgICAgcmV0dXJuIC0xCit9CisKK3NldCBzb2xpYl90ZXN0ZmlsZSAi aml0LXNvbGliIgorc2V0IHNvbGliX3NyY2ZpbGUgIiR7c3JjZGlyfS8ke3N1 YmRpcn0vJHtzb2xpYl90ZXN0ZmlsZX0uYyIKK3NldCBzb2xpYl9iaW5maWxl ICIke29iamRpcn0vJHtzdWJkaXJ9LyR7c29saWJfdGVzdGZpbGV9LnNvIgor CisjIE5vdGU6IGNvbXBpbGluZyB3aXRob3V0IGRlYnVnIGluZm86IHRoZSBs aWJyYXJ5IGdvZXMgdGhyb3VnaCBzeW1ib2wKKyMgcmVuYW1pbmcgYnkgbXVu Z2luZyBvbiBpdHMgc3ltYm9sIHRhYmxlLCBhbmQgdGhhdCB3b3VsZG4ndCB3 b3JrIGZvciAuZGVidWcKKyMgc2VjdGlvbnMuICBBbHNvLCBvdXRwdXQgZm9y ICJpbmZvIGZ1bmN0aW9uIiBjaGFuZ2VzIHdoZW4gZGVidWcgaW5mbyBpcyBy ZXNlbnQuCitpZiB7IFtnZGJfY29tcGlsZV9zaGxpYiAke3NvbGliX3NyY2Zp bGV9ICR7c29saWJfYmluZmlsZX0gey1mUElDfV0gIT0gIiIgfSB7CisgICAg dW50ZXN0ZWQgaml0LmV4cAorICAgIHJldHVybiAtMQorfQorCisKKyMgU3Rh cnQgd2l0aCBhIGZyZXNoIGdkYi4KKworZ2RiX2V4aXQKK2dkYl9zdGFydAor Z2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCitnZGJfbG9h ZCAkYmluZmlsZQorCitwcm9jIG9uZV9qaXRfdGVzdCB7Y291bnQgbWF0Y2hf c3RyfSB7CisgICAgZ2xvYmFsIHZlcmJvc2UgdGVzdGZpbGUgc29saWJfYmlu ZmlsZSBwZl9wcmVmaXgKKworICAgIHNldCBvbGRfcGZfcHJlZml4ICRwZl9w cmVmaXgKKyAgICBzZXQgcGZfcHJlZml4ICJvbmVfaml0X3Rlc3QtJGNvdW50 IgorCisgICAgY2xlYW5fcmVzdGFydCAkdGVzdGZpbGUKKworICAgICMgVGhp cyBpcyBqdXN0IHRvIGhlbHAgZGVidWdnaW5nIHdoZW4gdGhpbmdzIGZhaWwK KyAgICBpZiB7JHZlcmJvc2UgPiAwfSB7CisJZ2RiX3Rlc3QgInNldCBkZWJ1 ZyBqaXQgMSIKKyAgICB9CisKKyAgICBpZiB7ICFbcnVudG9fbWFpbl0gfSB7 CisJZmFpbCAiQ2FuJ3QgcnVuIHRvIG1haW4iCisJcmV0dXJuCisgICAgfQor CisgICAgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImJy ZWFrIGhlcmUgMCJdCisgICAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg ImJyZWFrIGhlcmUgMCIKKworICAgICMgUG9rZSBkZXNpcmVkIHZhbHVlcyBk aXJlY3RseSBpbnRvIGluZmVyaW9yIGluc3RlYWQgb2YgdXNpbmcgInNldCBh cmdzIgorICAgICMgYmVjYXVzZSAic2V0IGFyZ3MiIGRvZXMgbm90IHdvcmsg dW5kZXIgZ2Ric2VydmVyLgorICAgIGdkYl90ZXN0ICJzZXQgdmFyIGFyZ2Mg PSAyIgorICAgIGdkYl90ZXN0ICJzZXQgdmFyIGxpYm5hbWUgPSBcIiRzb2xp Yl9iaW5maWxlXCIiCisgICAgZ2RiX3Rlc3QgInNldCB2YXIgY291bnQgPSAk Y291bnQiCisKKyAgICBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251 bWJlciAiYnJlYWsgaGVyZSAxIl0KKyAgICBnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAiYnJlYWsgaGVyZSAxIgorCisgICAgZ2RiX3Rlc3QgImluZm8g ZnVuY3Rpb24gaml0X2Z1bmN0aW9uIiAiJG1hdGNoX3N0ciIKKworICAgICMg VGhpcyBpcyBqdXN0IHRvIGhlbHAgZGVidWdnaW5nIHdoZW4gdGhpbmdzIGZh aWwKKyAgICBpZiB7JHZlcmJvc2UgPiAwfSB7CisJZ2RiX3Rlc3QgIm1haW50 ZW5hbmNlIHByaW50IG9iamZpbGVzIgorICAgIH0KKworICAgIGdkYl9icmVh a3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicmVhayBoZXJlIDIiXQor ICAgIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJicmVhayBoZXJlIDIi CisgICAgIyBBbGwgaml0IGxpYnJhcmVzIG11c3QgaGF2ZSBiZWVuIHVucmVn aXN0ZXJlZAorICAgIGdkYl90ZXN0ICJpbmZvIGZ1bmN0aW9uIGppdF9mdW5j dGlvbiIgXAorCSJBbGwgZnVuY3Rpb25zIG1hdGNoaW5nIHJlZ3VsYXIgZXhw cmVzc2lvbiBcImppdF9mdW5jdGlvblwiOiIgXAorICAgIHNldCBwZl9wcmVm aXggJG9sZF9wZl9wcmVmaXgKK30KKworb25lX2ppdF90ZXN0IDEgIiR7aGV4 fSAgaml0X2Z1bmN0aW9uXzAwMDAiCitvbmVfaml0X3Rlc3QgMiAiJHtoZXh9 ICBqaXRfZnVuY3Rpb25fMDAwMFxbXHJcblxdKyR7aGV4fSAgaml0X2Z1bmN0 aW9uXzAwMDEiCg== --0016e686cd325708c00499a97585--