From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) by sourceware.org (Postfix) with ESMTPS id CADC0384F01F; Wed, 13 Jul 2022 17:27:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CADC0384F01F Received: by mail-ej1-x62b.google.com with SMTP id ss3so15030983ejc.11; Wed, 13 Jul 2022 10:27:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:from :subject:to:cc:content-language; bh=ltsa/1uuZ9td5cHUp8hBseW3/4eGuIiKkg6gGFBAr6M=; b=PjSsjzSgHT3PwJiAVtoVVuMkdwH0tZIjCiOf9LQmM1p0OUF/Tt1HWbDwcK1swLvaHz 3xvp92x6BjM7g5zuGXsSQyqwpeiSCSgCBhB+QgVCkdNnH8DxbXc0OLctAhevoUcouyix OhIH6eCcRFfFsyV0hm7mEg9dOnnBCKAvEojwGEYHyUySvmW9QGhyEngiZAmnMAMf58+V N7n0CgPWowiLquKPvxSBU/0WkjwvRPK6oKeDbwqpe0awEMRobm1GDB1NUaWCm/S/ikA0 lXPv6WqC1n2XDH7vpgIrfCKIdvHX/ldFJpihKlwbcOLmK4dmRN56W8Me7tQthiknnz5O fUZA== X-Gm-Message-State: AJIora8n7LiWnMmU79+4q6+lOP+Y6O4qg/6V8uKx7nhB+RWFjxyF6L/c 4zku77aQxn1P3goCWVE7OGLzEwDXUPc= X-Google-Smtp-Source: AGRyM1sSpqh05mAEGes56dbzU+STA/ufKiRog5EMsOrsyaS9JwqKaOZawO55+hVKpo81+GFWjwi0qw== X-Received: by 2002:a17:906:5d08:b0:6ff:8ed:db63 with SMTP id g8-20020a1709065d0800b006ff08eddb63mr4593441ejt.408.1657733265221; Wed, 13 Jul 2022 10:27:45 -0700 (PDT) Received: from [10.13.0.220] ([109.190.253.11]) by smtp.googlemail.com with ESMTPSA id e41-20020a056402332900b0042de3d661d2sm8352196eda.1.2022.07.13.10.27.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 13 Jul 2022 10:27:44 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------N2Vk961A9WmHbJpO0jcJoiiu" Message-ID: Date: Wed, 13 Jul 2022 19:26:36 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 From: =?UTF-8?Q?Fran=c3=a7ois_Dumont?= Subject: [PATCH] Add _GLIBCXX_DEBUG backtrace generation To: "libstdc++@gcc.gnu.org" Cc: gcc-patches Content-Language: fr X-Spam-Status: No, score=-9.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jul 2022 17:27:49 -0000 This is a multi-part message in MIME format. --------------N2Vk961A9WmHbJpO0jcJoiiu Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit libstdc++: [_GLIBCXX_DEBUG] Add backtrace generation on demand Add _GLIBCXX_DEBUG_BACKTRACE macro to activate backtrace generation on _GLIBCXX_DEBUG assertions. Prerequisite is to have configure the lib with: --enable-libstdcxx-backtrace=yes libstdc++-v3/ChangeLog: * include/debug/formatter.h [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_state): Declare. [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_create_state): Declare. [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_callback): Define. [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_error_callback): Define. [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_func): Define. [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full): Declare. [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_state): New. [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_full): New. * src/c++11/debug.cc (pretty_print): Rename into... (print_function): ...that. [_GLIBCXX_HAVE_STACKTRACE](print_backtrace): New. (_Error_formatter::_M_error()): Adapt. * src/libbacktrace/Makefile.am: Add backtrace.c. * src/libbacktrace/Makefile.in: Regenerate. * src/libbacktrace/backtrace-rename.h (backtrace_full): New. * testsuite/23_containers/vector/debug/assign4_neg.cc: Add backtrace    generation. * doc/xml/manual/debug_mode.xml: Document _GLIBCXX_DEBUG_BACKTRACE. * doc/xml/manual/using.xml: Likewise. Tested under Linux x86_64 normal and _GLIBCXX_DEBUG modes. Ok to commit ? François --------------N2Vk961A9WmHbJpO0jcJoiiu Content-Type: text/x-patch; charset=UTF-8; name="debug_backtrace.patch" Content-Disposition: attachment; filename="debug_backtrace.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9kb2MveG1sL21hbnVhbC9kZWJ1Z19tb2RlLnht bCBiL2xpYnN0ZGMrKy12My9kb2MveG1sL21hbnVhbC9kZWJ1Z19tb2RlLnhtbAppbmRleCA5 ODhjNGE5MzYwMS4uZGFkYzBjZDFiYjQgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9kb2Mv eG1sL21hbnVhbC9kZWJ1Z19tb2RlLnhtbAorKysgYi9saWJzdGRjKystdjMvZG9jL3htbC9t YW51YWwvZGVidWdfbW9kZS54bWwKQEAgLTE2MSw2ICsxNjEsMTIgQEAgd2hpY2ggYWx3YXlz IHdvcmtzIGNvcnJlY3RseS4KICAgPGNvZGU+R0xJQkNYWF9ERUJVR19NRVNTQUdFX0xFTkdU SDwvY29kZT4gY2FuIGJlIHVzZWQgdG8gcmVxdWVzdCBhCiAgIGRpZmZlcmVudCBsZW5ndGgu PC9wYXJhPgogCis8cGFyYT5Ob3RlIHRoYXQgbGlic3RkYysrIGlzIGFibGUgdG8gcHJvZHVj ZSBiYWNrdHJhY2VzIG9uIGVycm9yLgorICBJdCByZXF1aXJlcyB0aGF0IHlvdSBjb25maWd1 cmUgbGlic3RkYysrIGJ1aWxkIHdpdGgKKyAgPG9wdGlvbj4tLWVuYWJsZS1saWJzdGRjeHgt YmFja3RyYWNlPXllczwvb3B0aW9uPi4KKyAgVXNlIDxjb2RlPi1EX0dMSUJDWFhfREVCVUdf QkFDS1RSQUNFPC9jb2RlPiB0byBhY3RpdmF0ZSBpdC4KKyAgWW91J2xsIHRoZW4gaGF2ZSB0 byBsaW5rIHdpdGggbGlic3RkYysrX2xpYmJhY2t0cmFjZSBzdGF0aWMgbGlicmFyeQorICAo PG9wdGlvbj4tbHN0ZGMrK19saWJiYWNrdHJhY2U8L29wdGlvbj4pIHRvIGJ1aWxkIHlvdXIg YXBwbGljYXRpb24uPC9wYXJhPgogPC9zZWN0aW9uPgogCiA8c2VjdGlvbiB4bWw6aWQ9ImRl YnVnX21vZGUudXNpbmcuc3BlY2lmaWMiIHhyZWZsYWJlbD0iVXNpbmcgU3BlY2lmaWMiPjxp bmZvPjx0aXRsZT5Vc2luZyBhIFNwZWNpZmljIERlYnVnIENvbnRhaW5lcjwvdGl0bGU+PC9p bmZvPgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2RvYy94bWwvbWFudWFsL3VzaW5nLnht bCBiL2xpYnN0ZGMrKy12My9kb2MveG1sL21hbnVhbC91c2luZy54bWwKaW5kZXggMzZiODY3 MDJkMjIuLjI2ZjE0ZmFlMTk0IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvZG9jL3htbC9t YW51YWwvdXNpbmcueG1sCisrKyBiL2xpYnN0ZGMrKy12My9kb2MveG1sL21hbnVhbC91c2lu Zy54bWwKQEAgLTExMjksNiArMTEyOSwxNSBAQCBnKysgLVdpbnZhbGlkLXBjaCAtSS4gLWlu Y2x1ZGUgc3RkYysrLmggLUggLWcgLU8yIGhlbGxvLmNjIC1vIHRlc3QuZXhlCiAJZXh0ZW5z aW9ucyBhbmQgbGlic3RkYysrLXNwZWNpZmljIGJlaGF2aW9yIGludG8gZXJyb3JzLgogICAg ICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+PC92YXJsaXN0ZW50cnk+CisgICAgPHZhcmxp c3RlbnRyeT48dGVybT48Y29kZT5fR0xJQkNYWF9ERUJVR19CQUNLVFJBQ0U8L2NvZGU+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorCVVuZGVmaW5lZCBieSBkZWZh dWx0LiBDb25zaWRlcmVkIG9ubHkgaWYgbGlic3RkYysrIGhhcyBiZWVuIGNvbmZpZ3VyZWQg d2l0aAorCTxvcHRpb24+LS1lbmFibGUtbGlic3RkY3h4LWJhY2t0cmFjZT15ZXM8L29wdGlv bj4gYW5kIGlmIDxjb2RlPl9HTElCQ1hYX0RFQlVHPC9jb2RlPgorCWlzIGRlZmluZWQuIFdo ZW4gZGVmaW5lZCBkaXNwbGF5IGJhY2t0cmFjZXMgb24KKwk8bGluayBsaW5rZW5kPSJtYW51 YWwuZXh0LmRlYnVnX21vZGUiPmRlYnVnIG1vZGU8L2xpbms+IGFzc2VydGlvbnMuCisgICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT48L3Zhcmxpc3RlbnRyeT4KICAgICA8dmFybGlz dGVudHJ5Pjx0ZXJtPjxjb2RlPl9HTElCQ1hYX1BBUkFMTEVMPC9jb2RlPjwvdGVybT4KICAg ICA8bGlzdGl0ZW0+CiAgICAgICA8cGFyYT5VbmRlZmluZWQgYnkgZGVmYXVsdC4gV2hlbiBk ZWZpbmVkLCBjb21waWxlcyB1c2VyIGNvZGUKQEAgLTE2MzUsNiArMTY0NCw3IEBAIEEgcXVp Y2sgcmVhZCBvZiB0aGUgcmVsZXZhbnQgcGFydCBvZiB0aGUgR0NDCiAgICAgICBoZWFkZXIg d2lsbCByZW1haW4gY29tcGF0aWJsZSBiZXR3ZWVuIGRpZmZlcmVudCBHQ0MgcmVsZWFzZXMu CiAgICAgPC9wYXJhPgogICAgIDwvc2VjdGlvbj4KKwogICA8L3NlY3Rpb24+CiAKICAgPHNl Y3Rpb24geG1sOmlkPSJtYW51YWwuaW50cm8udXNpbmcuY29uY3VycmVuY3kiIHhyZWZsYWJl bD0iQ29uY3VycmVuY3kiPjxpbmZvPjx0aXRsZT5Db25jdXJyZW5jeTwvdGl0bGU+PC9pbmZv PgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2luY2x1ZGUvZGVidWcvZm9ybWF0dGVyLmgg Yi9saWJzdGRjKystdjMvaW5jbHVkZS9kZWJ1Zy9mb3JtYXR0ZXIuaAppbmRleCA4MGU4YmE0 NmQxZS4uZjMxYjQ0ZDE4NGEgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2Rl YnVnL2Zvcm1hdHRlci5oCisrKyBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2RlYnVnL2Zvcm1h dHRlci5oCkBAIC0zMSw2ICszMSwzNyBAQAogCiAjaW5jbHVkZSA8Yml0cy9jKytjb25maWcu aD4KIAorI2lmIF9HTElCQ1hYX0hBVkVfU1RBQ0tUUkFDRQorc3RydWN0IF9fZ2xpYmN4eF9i YWNrdHJhY2Vfc3RhdGU7CisKK2V4dGVybiAiQyIKK3sKKyAgX19nbGliY3h4X2JhY2t0cmFj ZV9zdGF0ZSoKKyAgX19nbGliY3h4X2JhY2t0cmFjZV9jcmVhdGVfc3RhdGUoY29uc3QgY2hh ciosIGludCwKKwkJCQkgICB2b2lkKCopKHZvaWQqLCBjb25zdCBjaGFyKiwgaW50KSwKKwkJ CQkgICB2b2lkKik7CisKKyAgdHlwZWRlZiBpbnQgKCpfX2dsaWJjeHhfYmFja3RyYWNlX2Z1 bGxfY2FsbGJhY2spICgKKyAgICB2b2lkKiwgX19VSU5UUFRSX1RZUEVfXywgY29uc3QgY2hh ciAqLCBpbnQsIGNvbnN0IGNoYXIqKTsKKworICB0eXBlZGVmIHZvaWQgKCpfX2dsaWJjeHhf YmFja3RyYWNlX2Vycm9yX2NhbGxiYWNrKSAoCisgICAgdm9pZCosIGNvbnN0IGNoYXIqLCBp bnQpOworCisgIHR5cGVkZWYgaW50ICgqX19nbGliY3h4X2JhY2t0cmFjZV9mdWxsX2Z1bmMp ICgKKyAgICBfX2dsaWJjeHhfYmFja3RyYWNlX3N0YXRlKiwgaW50LAorICAgIF9fZ2xpYmN4 eF9iYWNrdHJhY2VfZnVsbF9jYWxsYmFjaywKKyAgICBfX2dsaWJjeHhfYmFja3RyYWNlX2Vy cm9yX2NhbGxiYWNrLAorICAgIHZvaWQqKTsKKworICBpbnQKKyAgX19nbGliY3h4X2JhY2t0 cmFjZV9mdWxsKAorICAgIF9fZ2xpYmN4eF9iYWNrdHJhY2Vfc3RhdGUqLCBpbnQsCisgICAg X19nbGliY3h4X2JhY2t0cmFjZV9mdWxsX2NhbGxiYWNrLAorICAgIF9fZ2xpYmN4eF9iYWNr dHJhY2VfZXJyb3JfY2FsbGJhY2ssCisgICAgdm9pZCopOworfQorI2VuZGlmCisKICNpZiBf X2NwcF9ydHRpCiAjIGluY2x1ZGUgPHR5cGVpbmZvPgogIyBkZWZpbmUgX0dMSUJDWFhfVFlQ RUlEKF9UeXBlKSAmdHlwZWlkKF9UeXBlKQpAQCAtNTY1LDYgKzU5NiwxNSBAQCBuYW1lc3Bh Y2UgX19nbnVfZGVidWcKIAkJICAgICBjb25zdCBjaGFyKiBfX2Z1bmN0aW9uKQogICAgIDog X01fZmlsZShfX2ZpbGUpLCBfTV9saW5lKF9fbGluZSksIF9NX251bV9wYXJhbWV0ZXJzKDAp LCBfTV90ZXh0KDApCiAgICAgLCBfTV9mdW5jdGlvbihfX2Z1bmN0aW9uKQorI2lmIF9HTElC Q1hYX0hBVkVfU1RBQ0tUUkFDRQorIyBpZmRlZiBfR0xJQkNYWF9ERUJVR19CQUNLVFJBQ0UK KyAgICAsIF9NX2JhY2t0cmFjZV9zdGF0ZSgKKyAgICAgIF9fZ2xpYmN4eF9iYWNrdHJhY2Vf Y3JlYXRlX3N0YXRlKG51bGxwdHIsIDAsIG51bGxwdHIsIG51bGxwdHIpKQorICAgICwgX01f YmFja3RyYWNlX2Z1bGwoJl9fZ2xpYmN4eF9iYWNrdHJhY2VfZnVsbCkKKyMgZWxzZQorICAg ICwgX01fYmFja3RyYWNlX3N0YXRlKCkKKyMgZW5kaWYKKyNlbmRpZgogICAgIHsgfQogCiAj aWYgIV9HTElCQ1hYX0lOTElORV9WRVJTSU9OCkBAIC01ODAsNiArNjIwLDEwIEBAIG5hbWVz cGFjZSBfX2dudV9kZWJ1ZwogICAgIHVuc2lnbmVkIGludAlfTV9udW1fcGFyYW1ldGVyczsK ICAgICBjb25zdCBjaGFyKgkJX01fdGV4dDsKICAgICBjb25zdCBjaGFyKgkJX01fZnVuY3Rp b247CisjaWYgX0dMSUJDWFhfSEFWRV9TVEFDS1RSQUNFCisgICAgX19nbGliY3h4X2JhY2t0 cmFjZV9zdGF0ZSoJCV9NX2JhY2t0cmFjZV9zdGF0ZTsKKyAgICBfX2dsaWJjeHhfYmFja3Ry YWNlX2Z1bGxfZnVuYwlfTV9iYWNrdHJhY2VfZnVsbDsKKyNlbmRpZgogCiAgIHB1YmxpYzoK ICAgICBzdGF0aWMgX0Vycm9yX2Zvcm1hdHRlciYKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12 My9zcmMvYysrMTEvZGVidWcuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2RlYnVnLmNj CmluZGV4IDQ3MDZkZWZlZGYxLi4zZTQ1NDMzYmUyMiAxMDA2NDQKLS0tIGEvbGlic3RkYysr LXYzL3NyYy9jKysxMS9kZWJ1Zy5jYworKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2Rl YnVnLmNjCkBAIC02MDksMTAgKzYwOSwxMiBAQCBuYW1lc3BhY2UKICAgdm9pZAogICBwcmlu dF9yYXcoUHJpbnRDb250ZXh0JiBjdHgsIGNvbnN0IGNoYXIqIHN0ciwgcHRyZGlmZl90IG5i YyA9IC0xKQogICB7Ci0gICAgaWYgKG5iYyA+PSAwKQotICAgICAgY3R4Ll9NX2NvbHVtbiAr PSBmcHJpbnRmKHN0ZGVyciwgIiUuKnMiLCAoaW50KW5iYywgc3RyKTsKLSAgICBlbHNlCi0g ICAgICBjdHguX01fY29sdW1uICs9IGZwcmludGYoc3RkZXJyLCAiJXMiLCBzdHIpOworICAg IGlmIChuYmMgIT0gMCkKKyAgICAgIHsKKwljdHguX01fY29sdW1uICs9IChuYmMgPiAwKQor CSAgPyBmcHJpbnRmKHN0ZGVyciwgIiUuKnMiLCAoaW50KW5iYywgc3RyKQorCSAgOiBmcHJp bnRmKHN0ZGVyciwgIiVzIiwgc3RyKTsKKyAgICAgIH0KICAgfQogCiAgIHZvaWQKQEAgLTY2 NiwyNSArNjY4LDM1IEBAIG5hbWVzcGFjZQogICB9CiAKICAgdm9pZAotICBwcmV0dHlfcHJp bnQoUHJpbnRDb250ZXh0JiBjdHgsIGNvbnN0IGNoYXIqIHN0ciwgX1ByaW50X2Z1bmNfdCBw cmludF9mdW5jKQorICBwcmludF9mdW5jdGlvbihQcmludENvbnRleHQmIGN0eCwgY29uc3Qg Y2hhciogZnVuYywgX1ByaW50X2Z1bmNfdCBwcmludF9mdW5jKQogICB7Ci0gICAgY29uc3Qg Y2hhciBjeHgxOTk4W10gPSAiY3h4MTk5ODo6IjsKKyAgICBjb25zdCBjaGFyIGN4eDE5OThb XSA9ICJfX2N4eDE5OTg6OiI7CisgICAgY29uc3QgY2hhciB1Z2xpZmljYXRpb25bXSA9ICJf XyI7CiAgICAgZm9yICg7OykKICAgICAgIHsKLQlpZiAoYXV0byBwb3MgPSBzdHJzdHIoc3Ry LCAiX18iKSkKKwlzaXplX3Qgb2Zmc2V0OworCWF1dG8gaWR4ID0gc3Ryc3RyKGZ1bmMsIGN4 eDE5OTgpOworCWlmIChpZHgpCisJICBvZmZzZXQgPSBzaXplb2YoY3h4MTk5OCkgLSAxOwor CWVsc2UgaWYgKChpZHggPSBzdHJzdHIoZnVuYywgdWdsaWZpY2F0aW9uKSkpCisJICBvZmZz ZXQgPSBzaXplb2YodWdsaWZpY2F0aW9uKSAtIDE7CisKKwlpZiAoaWR4KQogCSAgewotCSAg ICBpZiAocG9zICE9IHN0cikKLQkgICAgICBwcmludF9mdW5jKGN0eCwgc3RyLCBwb3MgLSBz dHIpOworCSAgICBpZiAoaWR4ICE9IGZ1bmMpCisJICAgICAgcHJpbnRfZnVuYyhjdHgsIGZ1 bmMsIGlkeCAtIGZ1bmMpOworCisJICAgIGZ1bmMgPSBpZHggKyBvZmZzZXQ7CiAKLQkgICAg cG9zICs9IDI7IC8vIGFkdmFuY2UgcGFzdCAiX18iCi0JICAgIGlmIChtZW1jbXAocG9zLCBj eHgxOTk4LCA5KSA9PSAwKQotCSAgICAgIHBvcyArPSA5OyAvLyBhZHZhbmNlIHBhcnQgImN4 eDE5OTg6OiIKKwkgICAgd2hpbGUgKCpmdW5jICYmIGlzc3BhY2UoKHVuc2lnbmVkIGNoYXIp KmZ1bmMpKQorCSAgICAgICsrZnVuYzsKIAotCSAgICBzdHIgPSBwb3M7CisJICAgIGlmICgh KmZ1bmMpCisJICAgICAgYnJlYWs7CiAJICB9CiAJZWxzZQogCSAgewotCSAgICBwcmludF9m dW5jKGN0eCwgc3RyLCAtMSk7CisJICAgIHByaW50X2Z1bmMoY3R4LCBmdW5jLCAtMSk7CiAJ ICAgIGJyZWFrOwogCSAgfQogICAgICAgfQpAQCAtNzA0LDcgKzcxNiw3IEBAIG5hbWVzcGFj ZQogCSAgY2hhciogZGVtYW5nbGVkX25hbWUgPQogCSAgICBfX2N4eGFiaXYxOjpfX2N4YV9k ZW1hbmdsZShpbmZvLT5uYW1lKCksIE5VTEwsIE5VTEwsICZzdGF0dXMpOwogCSAgaWYgKHN0 YXR1cyA9PSAwKQotCSAgICBwcmV0dHlfcHJpbnQoY3R4LCBkZW1hbmdsZWRfbmFtZSwgJnBy aW50X3dvcmQpOworCSAgICBwcmludF9mdW5jdGlvbihjdHgsIGRlbWFuZ2xlZF9uYW1lLCAm cHJpbnRfd29yZCk7CiAJICBlbHNlCiAJICAgIHByaW50X3dvcmQoY3R4LCBpbmZvLT5uYW1l KCkpOwogCSAgZnJlZShkZW1hbmdsZWRfbmFtZSk7CkBAIC03MzUsNyArNzQ3LDcgQEAgbmFt ZXNwYWNlCiAgIHByaW50X25hbWVkX25hbWUoUHJpbnRDb250ZXh0JiBjdHgsIGNvbnN0IF9Q YXJhbWV0ZXI6Ol9OYW1lZCYgbmFtZWQpCiAgIHsKICAgICBhc3NlcnQobmFtZWQuX01fbmFt ZSk7Ci0gICAgcHJldHR5X3ByaW50KGN0eCwgbmFtZWQuX01fbmFtZSwgcHJpbnRfd29yZCk7 CisgICAgcHJpbnRfZnVuY3Rpb24oY3R4LCBuYW1lZC5fTV9uYW1lLCBwcmludF93b3JkKTsK ICAgfQogCiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9JdGVyYXRvcj4KQEAgLTEwOTAsNiArMTEw Miw1OCBAQCBuYW1lc3BhY2UKICAgdm9pZAogICBwcmludF9zdHJpbmcoUHJpbnRDb250ZXh0 JiBjdHgsIGNvbnN0IGNoYXIqIHN0ciwgcHRyZGlmZl90IG5iYykKICAgeyBwcmludF9zdHJp bmcoY3R4LCBzdHIsIG5iYywgbnVsbHB0ciwgMCk7IH0KKworI2lmIF9HTElCQ1hYX0hBVkVf U1RBQ0tUUkFDRQorICBpbnQKKyAgcHJpbnRfYmFja3RyYWNlKHZvaWQqIGRhdGEsIF9fVUlO VFBUUl9UWVBFX18gcGMsIGNvbnN0IGNoYXIqIGZpbGVuYW1lLAorCQkgIGludCBsaW5lbm8s IGNvbnN0IGNoYXIqIGZ1bmN0aW9uKQorICB7CisgICAgY29uc3QgaW50IGJ1ZnNpemUgPSA2 NDsKKyAgICBjaGFyIGJ1ZltidWZzaXplXTsKKworICAgIFByaW50Q29udGV4dCYgY3R4ID0g KnN0YXRpY19jYXN0PFByaW50Q29udGV4dCo+KGRhdGEpOworCisgICAgaW50IHdyaXR0ZW4g PSBfX2J1aWx0aW5fc3ByaW50ZihidWYsICIlcCAiLCAodm9pZCopcGMpOworICAgIHByaW50 X3dvcmQoY3R4LCBidWYsIHdyaXR0ZW4pOworCisgICAgaW50IHJldCA9IDA7CisgICAgaWYg KGZ1bmN0aW9uKQorICAgICAgeworCWludCBzdGF0dXM7CisJY2hhciogZGVtYW5nbGVkX25h bWUgPQorCSAgX19jeHhhYml2MTo6X19jeGFfZGVtYW5nbGUoZnVuY3Rpb24sIE5VTEwsIE5V TEwsICZzdGF0dXMpOworCWlmIChzdGF0dXMgPT0gMCkKKwkgIHByaW50X2Z1bmN0aW9uKGN0 eCwgZGVtYW5nbGVkX25hbWUsICZwcmludF9yYXcpOworCWVsc2UKKwkgIHByaW50X3dvcmQo Y3R4LCBmdW5jdGlvbik7CisKKwlmcmVlKGRlbWFuZ2xlZF9uYW1lKTsKKwlyZXQgPSBzdHJz dHIoZnVuY3Rpb24sICJtYWluIikgPyAxIDogMDsKKyAgICAgIH0KKworICAgIHByaW50X2xp dGVyYWwoY3R4LCAiXG4iKTsKKworICAgIGlmIChmaWxlbmFtZSkKKyAgICAgIHsKKwlib29s IHdvcmR3cmFwID0gZmFsc2U7CisJc3dhcCh3b3Jkd3JhcCwgY3R4Ll9NX3dvcmR3cmFwKTsK KwlwcmludF93b3JkKGN0eCwgZmlsZW5hbWUpOworCisJaWYgKGxpbmVubykKKwkgIHsKKwkg ICAgd3JpdHRlbiA9IF9fYnVpbHRpbl9zcHJpbnRmKGJ1ZiwgIjoldVxuIiwgbGluZW5vKTsK KwkgICAgcHJpbnRfd29yZChjdHgsIGJ1Ziwgd3JpdHRlbik7CisJICB9CisJZWxzZQorCSAg cHJpbnRfbGl0ZXJhbChjdHgsICJcbiIpOworCXN3YXAod29yZHdyYXAsIGN0eC5fTV93b3Jk d3JhcCk7CisgICAgICB9CisgICAgZWxzZQorICAgICAgcHJpbnRfbGl0ZXJhbChjdHgsICI/ Pz86MFxuIik7CisKKyAgICByZXR1cm4gcmV0OworICB9CisjZW5kaWYKIH0KIAogbmFtZXNw YWNlIF9fZ251X2RlYnVnCkBAIC0xMTMwLDExICsxMTk0LDIyIEBAIG5hbWVzcGFjZSBfX2du dV9kZWJ1ZwogICAgIGlmIChfTV9mdW5jdGlvbikKICAgICAgIHsKIAlwcmludF9saXRlcmFs KGN0eCwgIkluIGZ1bmN0aW9uOlxuIik7Ci0JcHJldHR5X3ByaW50KGN0eCwgX01fZnVuY3Rp b24sICZwcmludF9zdHJpbmcpOworCXByaW50X2Z1bmN0aW9uKGN0eCwgX01fZnVuY3Rpb24s ICZwcmludF9zdHJpbmcpOworCXByaW50X2xpdGVyYWwoY3R4LCAiXG4iKTsKKwljdHguX01f Zmlyc3RfbGluZSA9IHRydWU7CiAJcHJpbnRfbGl0ZXJhbChjdHgsICJcbiIpOworICAgICAg fQorCisjaWYgX0dMSUJDWFhfSEFWRV9TVEFDS1RSQUNFCisgICAgaWYgKF9NX2JhY2t0cmFj ZV9zdGF0ZSkKKyAgICAgIHsKKwlwcmludF9saXRlcmFsKGN0eCwgIkJhY2t0cmFjZTpcbiIp OworCV9NX2JhY2t0cmFjZV9mdWxsKAorCSAgX01fYmFja3RyYWNlX3N0YXRlLCAxLCBwcmlu dF9iYWNrdHJhY2UsIG51bGxwdHIsICZjdHgpOwogCWN0eC5fTV9maXJzdF9saW5lID0gdHJ1 ZTsKIAlwcmludF9saXRlcmFsKGN0eCwgIlxuIik7CiAgICAgICB9CisjZW5kaWYKIAogICAg IHByaW50X2xpdGVyYWwoY3R4LCAiRXJyb3I6ICIpOwogCmRpZmYgLS1naXQgYS9saWJzdGRj KystdjMvc3JjL2xpYmJhY2t0cmFjZS9NYWtlZmlsZS5hbSBiL2xpYnN0ZGMrKy12My9zcmMv bGliYmFja3RyYWNlL01ha2VmaWxlLmFtCmluZGV4IDBmMTE0MzUwN2YzLi41MmQ4ZjgxYjk3 YiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9saWJiYWNrdHJhY2UvTWFrZWZpbGUu YW0KKysrIGIvbGlic3RkYysrLXYzL3NyYy9saWJiYWNrdHJhY2UvTWFrZWZpbGUuYW0KQEAg LTYwLDYgKzYwLDcgQEAgbGlic3RkY19fX2xpYmJhY2t0cmFjZV9sYV9TSE9SVE5BTUUgPSAk KG9ial9wcmVmaXgpCiAKIGxpYnN0ZGNfX19saWJiYWNrdHJhY2VfbGFfU09VUkNFUyA9IFwK IAlhdG9taWMuYyBcCisJYmFja3RyYWNlLmMgXAogCWR3YXJmLmMgXAogCWZpbGVsaW5lLmMg XAogCXBvc2l4LmMgXApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9saWJiYWNrdHJh Y2UvTWFrZWZpbGUuaW4gYi9saWJzdGRjKystdjMvc3JjL2xpYmJhY2t0cmFjZS9NYWtlZmls ZS5pbgppbmRleCA3NTQ1ODk0ZDU5YS4uNWM2YjRkZDFhMGMgMTAwNjQ0Ci0tLSBhL2xpYnN0 ZGMrKy12My9zcmMvbGliYmFja3RyYWNlL01ha2VmaWxlLmluCisrKyBiL2xpYnN0ZGMrKy12 My9zcmMvbGliYmFja3RyYWNlL01ha2VmaWxlLmluCkBAIC0xODEsMTAgKzE4MSwxMCBAQCBh bV9fdW5pbnN0YWxsX2ZpbGVzX2Zyb21fZGlyID0geyBcCiBhbV9faW5zdGFsbGRpcnMgPSAi JChERVNURElSKSQodG9vbGV4ZWNsaWJkaXIpIgogTFRMSUJSQVJJRVMgPSAkKHRvb2xleGVj bGliX0xUTElCUkFSSUVTKQogYW1fbGlic3RkY19fX2xpYmJhY2t0cmFjZV9sYV9PQkpFQ1RT ID0gJChvYmpfcHJlZml4KS1hdG9taWMubG8gXAotCSQob2JqX3ByZWZpeCktZHdhcmYubG8g JChvYmpfcHJlZml4KS1maWxlbGluZS5sbyBcCi0JJChvYmpfcHJlZml4KS1wb3NpeC5sbyAk KG9ial9wcmVmaXgpLXNvcnQubG8gXAotCSQob2JqX3ByZWZpeCktc2ltcGxlLmxvICQob2Jq X3ByZWZpeCktc3RhdGUubG8gXAotCSQob2JqX3ByZWZpeCktY3AtZGVtYW5nbGUubG8KKwkk KG9ial9wcmVmaXgpLWJhY2t0cmFjZS5sbyAkKG9ial9wcmVmaXgpLWR3YXJmLmxvIFwKKwkk KG9ial9wcmVmaXgpLWZpbGVsaW5lLmxvICQob2JqX3ByZWZpeCktcG9zaXgubG8gXAorCSQo b2JqX3ByZWZpeCktc29ydC5sbyAkKG9ial9wcmVmaXgpLXNpbXBsZS5sbyBcCisJJChvYmpf cHJlZml4KS1zdGF0ZS5sbyAkKG9ial9wcmVmaXgpLWNwLWRlbWFuZ2xlLmxvCiBsaWJzdGRj X19fbGliYmFja3RyYWNlX2xhX09CSkVDVFMgPSAgXAogCSQoYW1fbGlic3RkY19fX2xpYmJh Y2t0cmFjZV9sYV9PQkpFQ1RTKQogQU1fVl9sdCA9ICQoYW1fX3ZfbHRfQEFNX1ZAKQpAQCAt NTA3LDYgKzUwNyw3IEBAIG9ial9wcmVmaXggPSBzdGRfc3RhY2t0cmFjZQogbGlic3RkY19f X2xpYmJhY2t0cmFjZV9sYV9TSE9SVE5BTUUgPSAkKG9ial9wcmVmaXgpCiBsaWJzdGRjX19f bGliYmFja3RyYWNlX2xhX1NPVVJDRVMgPSBcCiAJYXRvbWljLmMgXAorCWJhY2t0cmFjZS5j IFwKIAlkd2FyZi5jIFwKIAlmaWxlbGluZS5jIFwKIAlwb3NpeC5jIFwKQEAgLTY0Nyw2ICs2 NDgsOSBAQCBkaXN0Y2xlYW4tY29tcGlsZToKICQob2JqX3ByZWZpeCktYXRvbWljLmxvOiBh dG9taWMuYwogCSQoQU1fVl9DQykkKExJQlRPT0wpICQoQU1fVl9sdCkgLS10YWc9Q0MgJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENDKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChsaWJzdGRjX19fbGli YmFja3RyYWNlX2xhX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxB R1MpIC1jIC1vICQob2JqX3ByZWZpeCktYXRvbWljLmxvIGB0ZXN0IC1mICdhdG9taWMuYycg fHwgZWNobyAnJChzcmNkaXIpLydgYXRvbWljLmMKIAorJChvYmpfcHJlZml4KS1iYWNrdHJh Y2UubG86IGJhY2t0cmFjZS5jCisJJChBTV9WX0NDKSQoTElCVE9PTCkgJChBTV9WX2x0KSAt LXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKGxp YnN0ZGNfX19saWJiYWNrdHJhY2VfbGFfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZM QUdTKSAkKENGTEFHUykgLWMgLW8gJChvYmpfcHJlZml4KS1iYWNrdHJhY2UubG8gYHRlc3Qg LWYgJ2JhY2t0cmFjZS5jJyB8fCBlY2hvICckKHNyY2RpcikvJ2BiYWNrdHJhY2UuYworCiAk KG9ial9wcmVmaXgpLWR3YXJmLmxvOiBkd2FyZi5jCiAJJChBTV9WX0NDKSQoTElCVE9PTCkg JChBTV9WX2x0KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKGxpYnN0ZGNfX19saWJiYWNrdHJhY2VfbGFfQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgLWMgLW8gJChvYmpfcHJlZml4KS1kd2FyZi5s byBgdGVzdCAtZiAnZHdhcmYuYycgfHwgZWNobyAnJChzcmNkaXIpLydgZHdhcmYuYwogCmRp ZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2xpYmJhY2t0cmFjZS9iYWNrdHJhY2UtcmVu YW1lLmggYi9saWJzdGRjKystdjMvc3JjL2xpYmJhY2t0cmFjZS9iYWNrdHJhY2UtcmVuYW1l LmgKaW5kZXggN2E1OWYxNjZlNjIuLjc5YmRlZjYzMDlmIDEwMDY0NAotLS0gYS9saWJzdGRj KystdjMvc3JjL2xpYmJhY2t0cmFjZS9iYWNrdHJhY2UtcmVuYW1lLmgKKysrIGIvbGlic3Rk YysrLXYzL3NyYy9saWJiYWNrdHJhY2UvYmFja3RyYWNlLXJlbmFtZS5oCkBAIC00LDYgKzQs NyBAQAogI2RlZmluZSBiYWNrdHJhY2VfY3JlYXRlX3N0YXRlIF9fZ2xpYmN4eF9iYWNrdHJh Y2VfY3JlYXRlX3N0YXRlCiAjZGVmaW5lIGJhY2t0cmFjZV9kd2FyZl9hZGQgX19nbGliY3h4 X2JhY2t0cmFjZV9kd2FyZl9hZGQKICNkZWZpbmUgYmFja3RyYWNlX2ZyZWUgX19nbGliY3h4 X2JhY2t0cmFjZV9mcmVlCisjZGVmaW5lIGJhY2t0cmFjZV9mdWxsIF9fZ2xpYmN4eF9iYWNr dHJhY2VfZnVsbAogI2RlZmluZSBiYWNrdHJhY2VfZ2V0X3ZpZXcgX19nbGliY3h4X2JhY2t0 cmFjZV9nZXRfdmlldwogI2RlZmluZSBiYWNrdHJhY2VfaW5pdGlhbGl6ZSBfX2dsaWJjeHhf YmFja3RyYWNlX2luaXRpYWxpemUKICNkZWZpbmUgYmFja3RyYWNlX29wZW4gX19nbGliY3h4 X2JhY2t0cmFjZV9vcGVuCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIz X2NvbnRhaW5lcnMvdmVjdG9yL2RlYnVnL2Fzc2lnbjRfbmVnLmNjIGIvbGlic3RkYysrLXYz L3Rlc3RzdWl0ZS8yM19jb250YWluZXJzL3ZlY3Rvci9kZWJ1Zy9hc3NpZ240X25lZy5jYwpp bmRleCA3YWI2NThkMGJhMS4uY2IxYjE3NDBjZmUgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12 My90ZXN0c3VpdGUvMjNfY29udGFpbmVycy92ZWN0b3IvZGVidWcvYXNzaWduNF9uZWcuY2MK KysrIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yM19jb250YWluZXJzL3ZlY3Rvci9kZWJ1 Zy9hc3NpZ240X25lZy5jYwpAQCAtMTYsNiArMTYsNyBAQAogLy8gPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgogLy8KIC8vIHsgZGctZG8gcnVuIHsgeGZhaWwgKi0qLSogfSB9 CisvLyB7IGRnLW9wdGlvbnMgIi1EX0dMSUJDWFhfREVCVUdfQkFDS1RSQUNFIC1sc3RkYysr X2xpYmJhY2t0cmFjZSIgfQogCiAjaW5jbHVkZSA8ZGVidWcvdmVjdG9yPgogI2luY2x1ZGUg PGRlYnVnL2NoZWNrcy5oPgo= --------------N2Vk961A9WmHbJpO0jcJoiiu--