From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27363 invoked by alias); 27 Oct 2011 09:41:40 -0000 Received: (qmail 27352 invoked by uid 22791); 27 Oct 2011 09:41:36 -0000 X-SWARE-Spam-Status: No, hits=-2.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-vx0-f169.google.com (HELO mail-vx0-f169.google.com) (209.85.220.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 27 Oct 2011 09:41:11 +0000 Received: by vcbfk1 with SMTP id fk1so2784029vcb.0 for ; Thu, 27 Oct 2011 02:41:10 -0700 (PDT) Received: by 10.220.152.9 with SMTP id e9mr903441vcw.143.1319708470162; Thu, 27 Oct 2011 02:41:10 -0700 (PDT) MIME-Version: 1.0 Received: by 10.220.180.75 with HTTP; Thu, 27 Oct 2011 02:40:50 -0700 (PDT) In-Reply-To: References: <201110141600.20561.pedro@codesourcery.com> <8339eie2ij.fsf@gnu.org> From: Kevin Pouget Date: Thu, 27 Oct 2011 10:02:00 -0000 Message-ID: Subject: Re: [RFC][Python] gdbpy_frame_stop_reason_string bug To: Eli Zaretskii Cc: pedro@codesourcery.com, pmuldoon@redhat.com, gdb-patches@sourceware.org, tromey@redhat.com Content-Type: multipart/mixed; boundary=f46d0438927f92337504b04492d6 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-10/txt/msg00718.txt.bz2 --f46d0438927f92337504b04492d6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 4460 On Tue, Oct 25, 2011 at 2:48 PM, Kevin Pouget wrot= e: > On Tue, Oct 25, 2011 at 2:22 PM, Eli Zaretskii wrote: >>> From: Kevin Pouget >>> Date: Tue, 25 Oct 2011 09:20:19 +0200 >>> Cc: pedro@codesourcery.com, pmuldoon@redhat.com, gdb-patches@sourceware= .org, >>> =A0 =A0 =A0 tromey@redhat.com >>> >>> >> +@item gdb.FRAME_UNWIND_FIRST_ERROR >>> >> +All the conditions after this alias are considered errors; >>> > >>> > Hmm... =A0This table is preceded by this text: >>> > >>> > =A0@defun Frame.unwind_stop_reason () >>> > =A0Return an integer representing the reason why it's not possible to= find >>> > =A0more frames toward the outermost frame. =A0Use >>> > =A0@code{gdb.frame_stop_reason_string} to convert the value returned = by this >>> > =A0function to a string. The value can be one of: >>> > >>> > So "conditions after this alias" seems inappropriate in the list that >>> > follows, because we are not describing conditions or aliases. =A0Can = you >>> > rephrase this to be consistent with the rest of the list. >>> >>> I'm not sure about you see wrong with "alias". We could replace it >>> with "reference" (like the & operator in C++, but also used in Python >>> and Java), but it sounds more or less the same to me. >>> >>> What do you think about: >>> "Stop reasons greater or equal to this value/alias/reference" >> >> Now that I understand the intent, I would suggest >> >> =A0Any stop reason greater or equal to this value indicates some kind >> =A0of error. =A0This special value facilitates writing code that tests >> =A0for errors in unwinding in a way that will work correctly even if >> =A0the list of the other values is modified in future @value{GDBN} >> =A0versions. =A0Using it, you could write: > > yes, if you feel like it has to be explicited, it's better this way > > @smallexample > reason =3D gdb.selected_frame().unwind_stop_reason () > reason_str =3D =A0gdb.frame_stop_reason_string (reason) > if reason >=3D =A0gdb.FRAME_UNWIND_FIRST_ERROR: > =A0 =A0print "An error occured during the unwinding process: %s" % reason= _str > > @end smallexample >> >>> > And why is it important that the value is an alias for another? >>> >>> it's important because it's not a distinct value as the other ones, so >>> > frame_stop_reason_string(UNWIND_FIRST_ERROR) =3D=3D frame_stop_reason= _string(UNWIND_UNAVAILABLE) >>> is True, which might be counter-intuitive if you don't know that >>> UNWIND_FIRST_ERROR is an alias/reference >> >> I still don't see the importance, sorry. =A0Moreover, having this text >> means that we will need to update the manual each time the list of >> unwind reasons is modified, **which in a way works against this very >> feature.** > > You're half right with this last sentence, but this Python value is > not here to ease *our* (GDB developers) lives, but rather for Python > developers. > this value is not meant to change very often (not to say almost > never), so I think it's not a big burden to change the documentation > as well when it happens. > The very reason why I wrote it is that I think it's useful for the > reader: when you look over this list, you can easily see what is a > normal reason for unwinders to stop, and what isn't (I think that not > so many people will actually have the chance to use it, but out of > curiosity, some people will want to read and understand it). > > > But that put aside, you're not convinced yet and I'm running short of > arguments ... Pedro, Tom, Phil, how do you see that ? Hello, there was a line longer than 80char in unwind_reason.def, I've split it I've also added the definition for FRAME_UNWIND_FIRST_ERROR that you suggested Eli (I've truncated the example to > reason =3D gdb.selected_frame().unwind_stop_reason () > reason_str =3D gdb.frame_stop_reason_string (reason) > if reason >=3D gdb.FRAME_UNWIND_FIRST_ERROR: > print "An error occured: %s" % reason_str because the full line was too long for the PDF. is it your last word for not mentioning the current value of the alias? Thanks, Kevin 2011-10-14 Kevin Pouget * frame.c (frame_stop_reason_string): Rewrite using unwind_stop_reasons.def. * frame.h (enum unwind_stop_reason): Likewise. * python/py-frame.c (gdbpy_initialize_frames): Likewise. (gdbpy_frame_stop_reason_string): Use new enum unwind_stop_reason constants for bound-checking. * unwind_stop_reasons.def: New file. --f46d0438927f92337504b04492d6 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Move-unwind-reasons-to-an-external-.def-file.patch" Content-Disposition: attachment; filename="0001-Move-unwind-reasons-to-an-external-.def-file.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gu9k98yc1 Content-length: 13608 RnJvbSBkMzEwYjBlMThiM2I2YWFmMDI5YjE2YmZjZmE5YmE5ZTA1NmU0MzQ4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZXZpbiBQb3VnZXQg PGtldmluLnBvdWdldEBzdC5jb20+CkRhdGU6IE1vbiwgMTcgT2N0IDIwMTEg MDk6NDI6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBNb3ZlIHVud2luZCBy ZWFzb25zIHRvIGFuIGV4dGVybmFsIC5kZWYgZmlsZQoKLS0tCiBnZGIvZG9j L2dkYi50ZXhpbmZvICAgICAgICAgfCAgIDEzICsrKysrKysKIGdkYi9mcmFt ZS5jICAgICAgICAgICAgICAgICB8ICAgMjAgKystLS0tLS0tLQogZ2RiL2Zy YW1lLmggICAgICAgICAgICAgICAgIHwgICA1MSArKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIGdkYi9weXRob24vcHktZnJhbWUuYyAgICAgICB8ICAg MjEgKysrKy0tLS0tLS0KIGdkYi9zdGFjay5jICAgICAgICAgICAgICAgICB8 ICAgIDIgKy0KIGdkYi91bndpbmRfc3RvcF9yZWFzb25zLmRlZiB8ICAgODAg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog NiBmaWxlcyBjaGFuZ2VkLCAxMTYgaW5zZXJ0aW9ucygrKSwgNzEgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Vud2luZF9zdG9wX3Jl YXNvbnMuZGVmCgpkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBi L2dkYi9kb2MvZ2RiLnRleGluZm8KaW5kZXggNjllMmJkYS4uZjk5ZmQ0YTQg MTAwNjQ0Ci0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KKysrIGIvZ2RiL2Rv Yy9nZGIudGV4aW5mbwpAQCAtMjM0NDUsNiArMjM0NDUsMTkgQEAgc3RhY2sg Y29ycnVwdGlvbi4KIEBpdGVtIGdkYi5GUkFNRV9VTldJTkRfTk9fU0FWRURf UEMKIFRoZSBmcmFtZSB1bndpbmRlciBkaWQgbm90IGZpbmQgYW55IHNhdmVk IFBDLCBidXQgd2UgbmVlZGVkCiBvbmUgdG8gdW53aW5kIGZ1cnRoZXIuCisK K0BpdGVtIGdkYi5GUkFNRV9VTldJTkRfRklSU1RfRVJST1IKK0FueSBzdG9w IHJlYXNvbiBncmVhdGVyIG9yIGVxdWFsIHRvIHRoaXMgdmFsdWUgaW5kaWNh dGVzIHNvbWUga2luZAorb2YgZXJyb3IuICBUaGlzIHNwZWNpYWwgdmFsdWUg ZmFjaWxpdGF0ZXMgd3JpdGluZyBjb2RlIHRoYXQgdGVzdHMKK2ZvciBlcnJv cnMgaW4gdW53aW5kaW5nIGluIGEgd2F5IHRoYXQgd2lsbCB3b3JrIGNvcnJl Y3RseSBldmVuIGlmCit0aGUgbGlzdCBvZiB0aGUgb3RoZXIgdmFsdWVzIGlz IG1vZGlmaWVkIGluIGZ1dHVyZSBAdmFsdWV7R0RCTn0KK3ZlcnNpb25zLiAg VXNpbmcgaXQsIHlvdSBjb3VsZCB3cml0ZToKK0BzbWFsbGV4YW1wbGUKK3Jl YXNvbiA9IGdkYi5zZWxlY3RlZF9mcmFtZSgpLnVud2luZF9zdG9wX3JlYXNv biAoKQorcmVhc29uX3N0ciA9ICBnZGIuZnJhbWVfc3RvcF9yZWFzb25fc3Ry aW5nIChyZWFzb24pCitpZiByZWFzb24gPj0gIGdkYi5GUkFNRV9VTldJTkRf RklSU1RfRVJST1I6CisgICAgcHJpbnQgIkFuIGVycm9yIG9jY3VyZWQ6ICVz IiAlIHJlYXNvbl9zdHIKK0BlbmQgc21hbGxleGFtcGxlCiBAZW5kIHRhYmxl CiAKIEBlbmQgZGVmdW4KZGlmZiAtLWdpdCBhL2dkYi9mcmFtZS5jIGIvZ2Ri L2ZyYW1lLmMKaW5kZXggNTgyNDAyMC4uZTVlNDQyYSAxMDA2NDQKLS0tIGEv Z2RiL2ZyYW1lLmMKKysrIGIvZ2RiL2ZyYW1lLmMKQEAgLTIzNTEsMjMgKzIz NTEsMTEgQEAgZnJhbWVfc3RvcF9yZWFzb25fc3RyaW5nIChlbnVtIHVud2lu ZF9zdG9wX3JlYXNvbiByZWFzb24pCiB7CiAgIHN3aXRjaCAocmVhc29uKQog ICAgIHsKLSAgICBjYXNlIFVOV0lORF9OVUxMX0lEOgotICAgICAgcmV0dXJu IF8oInVud2luZGVyIGRpZCBub3QgcmVwb3J0IGZyYW1lIElEIik7CisjZGVm aW5lIFNFVChuYW1lLCBkZXNjcmlwdGlvbikgXAorICAgIGNhc2UgbmFtZTog cmV0dXJuIF8oZGVzY3JpcHRpb24pOworI2luY2x1ZGUgInVud2luZF9zdG9w X3JlYXNvbnMuZGVmIgorI3VuZGVmIFNFVAogCi0gICAgY2FzZSBVTldJTkRf VU5BVkFJTEFCTEU6Ci0gICAgICByZXR1cm4gXygiTm90IGVub3VnaCByZWdp c3RlcnMgb3IgbWVtb3J5IGF2YWlsYWJsZSB0byB1bndpbmQgZnVydGhlciIp OwotCi0gICAgY2FzZSBVTldJTkRfSU5ORVJfSUQ6Ci0gICAgICByZXR1cm4g XygicHJldmlvdXMgZnJhbWUgaW5uZXIgdG8gdGhpcyBmcmFtZSAoY29ycnVw dCBzdGFjaz8pIik7Ci0KLSAgICBjYXNlIFVOV0lORF9TQU1FX0lEOgotICAg ICAgcmV0dXJuIF8oInByZXZpb3VzIGZyYW1lIGlkZW50aWNhbCB0byB0aGlz IGZyYW1lIChjb3JydXB0IHN0YWNrPykiKTsKLQotICAgIGNhc2UgVU5XSU5E X05PX1NBVkVEX1BDOgotICAgICAgcmV0dXJuIF8oImZyYW1lIGRpZCBub3Qg c2F2ZSB0aGUgUEMiKTsKLQotICAgIGNhc2UgVU5XSU5EX05PX1JFQVNPTjoK LSAgICBjYXNlIFVOV0lORF9GSVJTVF9FUlJPUjoKICAgICBkZWZhdWx0Ogog ICAgICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywKIAkJ ICAgICAgIkludmFsaWQgZnJhbWUgc3RvcCByZWFzb24iKTsKZGlmZiAtLWdp dCBhL2dkYi9mcmFtZS5oIGIvZ2RiL2ZyYW1lLmgKaW5kZXggYTI2MWE5MS4u NTU5NzJkZSAxMDA2NDQKLS0tIGEvZ2RiL2ZyYW1lLmgKKysrIGIvZ2RiL2Zy YW1lLmgKQEAgLTQ0Niw0NyArNDQ2LDE2IEBAIGV4dGVybiBzdHJ1Y3QgYWRk cmVzc19zcGFjZSAqZ2V0X2ZyYW1lX2FkZHJlc3Nfc3BhY2UgKHN0cnVjdCBm cmFtZV9pbmZvICopOwogCiBlbnVtIHVud2luZF9zdG9wX3JlYXNvbgogICB7 Ci0gICAgLyogTm8gcGFydGljdWxhciByZWFzb247IGVpdGhlciB3ZSBoYXZl bid0IHRyaWVkIHVud2luZGluZyB5ZXQsCi0gICAgICAgb3Igd2UgZGlkbid0 IGZhaWwuICAqLwotICAgIFVOV0lORF9OT19SRUFTT04sCi0KLSAgICAvKiBU aGUgcHJldmlvdXMgZnJhbWUncyBhbmFseXplciByZXR1cm5zIGFuIGludmFs aWQgcmVzdWx0Ci0gICAgICAgZnJvbSB0aGlzX2lkLgotCi0gICAgICAgRklY TUUgZHJvdy8yMDA2LTA4LTE2OiBUaGlzIGlzIGhvdyBHREIgdXNlZCB0byBp bmRpY2F0ZSBlbmQgb2YKLSAgICAgICBzdGFjay4gIFdlIHNob3VsZCBtaWdy YXRlIHRvIGEgbW9kZWwgd2hlcmUgZnJhbWVzIGFsd2F5cyBoYXZlIGEKLSAg ICAgICB2YWxpZCBJRCwgYW5kIHRoaXMgYmVjb21lcyBub3QganVzdCBhbiBl cnJvciBidXQgYW4gaW50ZXJuYWwKLSAgICAgICBlcnJvci4gIEJ1dCB0aGF0 J3MgYSBwcm9qZWN0IGZvciBhbm90aGVyIGRheS4gICovCi0gICAgVU5XSU5E X05VTExfSUQsCi0KLSAgICAvKiBUaGlzIGZyYW1lIGlzIHRoZSBvdXRlcm1v c3QuICAqLwotICAgIFVOV0lORF9PVVRFUk1PU1QsCi0KLSAgICAvKiBBbGwg dGhlIGNvbmRpdGlvbnMgYWZ0ZXIgdGhpcyBwb2ludCBhcmUgY29uc2lkZXJl ZCBlcnJvcnM7Ci0gICAgICAgYWJub3JtYWwgc3RhY2sgdGVybWluYXRpb24u ICBJZiBhIGJhY2t0cmFjZSBzdG9wcyBmb3Igb25lCi0gICAgICAgb2YgdGhl c2UgcmVhc29ucywgd2UnbGwgbGV0IHRoZSB1c2VyIGtub3cuICBUaGlzIG1h cmtlcgotICAgICAgIGlzIG5vdCBhIHZhbGlkIHN0b3AgcmVhc29uLiAgKi8K LSAgICBVTldJTkRfRklSU1RfRVJST1IsCi0KLSAgICAvKiBDYW4ndCB1bndp bmQgZnVydGhlciwgYmVjYXVzZSB0aGF0IHdvdWxkIHJlcXVpcmUga25vd2lu ZyB0aGUKLSAgICAgICB2YWx1ZXMgb2YgcmVnaXN0ZXJzIG9yIG1lbW9yeSB0 aGF0IGhhdmVuJ3QgYmVlbiBjb2xsZWN0ZWQuICAqLwotICAgIFVOV0lORF9V TkFWQUlMQUJMRSwKLQotICAgIC8qIFRoaXMgZnJhbWUgSUQgbG9va3MgbGlr ZSBpdCBvdWdodCB0byBiZWxvbmcgdG8gYSBORVhUIGZyYW1lLAotICAgICAg IGJ1dCB3ZSBnb3QgaXQgZm9yIGEgUFJFViBmcmFtZS4gIE5vcm1hbGx5LCB0 aGlzIGlzIGEgc2lnbiBvZgotICAgICAgIHVud2luZGVyIGZhaWx1cmUuICBJ dCBjb3VsZCBhbHNvIGluZGljYXRlIHN0YWNrIGNvcnJ1cHRpb24uICAqLwot ICAgIFVOV0lORF9JTk5FUl9JRCwKLQotICAgIC8qIFRoaXMgZnJhbWUgaGFz IHRoZSBzYW1lIElEIGFzIHRoZSBwcmV2aW91cyBvbmUuICBUaGF0IG1lYW5z Ci0gICAgICAgdGhhdCB1bndpbmRpbmcgZnVydGhlciB3b3VsZCBhbG1vc3Qg Y2VydGFpbmx5IGdpdmUgdXMgYW5vdGhlcgotICAgICAgIGZyYW1lIHdpdGgg ZXhhY3RseSB0aGUgc2FtZSBJRCwgc28gYnJlYWsgdGhlIGNoYWluLiAgTm9y bWFsbHksCi0gICAgICAgdGhpcyBpcyBhIHNpZ24gb2YgdW53aW5kZXIgZmFp bHVyZS4gIEl0IGNvdWxkIGFsc28gaW5kaWNhdGUKLSAgICAgICBzdGFjayBj b3JydXB0aW9uLiAgKi8KLSAgICBVTldJTkRfU0FNRV9JRCwKLQotICAgIC8q IFRoZSBmcmFtZSB1bndpbmRlciBkaWRuJ3QgZmluZCBhbnkgc2F2ZWQgUEMs IGJ1dCB3ZSBuZWVkZWQKLSAgICAgICBvbmUgdG8gdW53aW5kIGZ1cnRoZXIu ICAqLwotICAgIFVOV0lORF9OT19TQVZFRF9QQywKKyNkZWZpbmUgU0VUKG5h bWUsIGRlc2NyaXB0aW9uKSBuYW1lLAorI2RlZmluZSBGSVJTVF9FTlRSWShu YW1lKSBVTldJTkRfRklSU1QgPSBuYW1lLAorI2RlZmluZSBMQVNUX0VOVFJZ KG5hbWUpIFVOV0lORF9MQVNUID0gbmFtZSwKKyNkZWZpbmUgRklSU1RfRVJS T1IobmFtZSkgVU5XSU5EX0ZJUlNUX0VSUk9SID0gbmFtZSwKKworI2luY2x1 ZGUgInVud2luZF9zdG9wX3JlYXNvbnMuZGVmIgorI3VuZGVmIFNFVAorI3Vu ZGVmIEZJUlNUX0VOVFJZCisjdW5kZWYgTEFTVF9FTlRSWQorI3VuZGVmIEZJ UlNUX0VSUk9SCiAgIH07CiAKIC8qIFJldHVybiB0aGUgcmVhc29uIHdoeSB3 ZSBjYW4ndCB1bndpbmQgcGFzdCB0aGlzIGZyYW1lLiAgKi8KZGlmZiAtLWdp dCBhL2dkYi9weXRob24vcHktZnJhbWUuYyBiL2dkYi9weXRob24vcHktZnJh bWUuYwppbmRleCAzOThjZTg0Li41ZWQ0MzQ3IDEwMDY0NAotLS0gYS9nZGIv cHl0aG9uL3B5LWZyYW1lLmMKKysrIGIvZ2RiL3B5dGhvbi9weS1mcmFtZS5j CkBAIC01NDIsNyArNTQyLDcgQEAgZ2RicHlfZnJhbWVfc3RvcF9yZWFzb25f c3RyaW5nIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiAgIGlm ICghUHlBcmdfUGFyc2VUdXBsZSAoYXJncywgImkiLCAmcmVhc29uKSkKICAg ICByZXR1cm4gTlVMTDsKIAotICBpZiAocmVhc29uIDwgMCB8fCByZWFzb24g PiBVTldJTkRfTk9fU0FWRURfUEMpCisgIGlmIChyZWFzb24gPCBVTldJTkRf RklSU1QgfHwgcmVhc29uID4gVU5XSU5EX0xBU1QpCiAgICAgewogICAgICAg UHlFcnJfU2V0U3RyaW5nIChQeUV4Y19WYWx1ZUVycm9yLCAKIAkJICAgICAg IF8oIkludmFsaWQgZnJhbWUgc3RvcCByZWFzb24uIikpOwpAQCAtNTk5LDE4 ICs1OTksMTMgQEAgZ2RicHlfaW5pdGlhbGl6ZV9mcmFtZXMgKHZvaWQpCiAg IFB5TW9kdWxlX0FkZEludENvbnN0YW50IChnZGJfbW9kdWxlLCAiU0lHVFJB TVBfRlJBTUUiLCBTSUdUUkFNUF9GUkFNRSk7CiAgIFB5TW9kdWxlX0FkZElu dENvbnN0YW50IChnZGJfbW9kdWxlLCAiQVJDSF9GUkFNRSIsIEFSQ0hfRlJB TUUpOwogICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudCAoZ2RiX21vZHVsZSwg IlNFTlRJTkVMX0ZSQU1FIiwgU0VOVElORUxfRlJBTUUpOwotICBQeU1vZHVs ZV9BZGRJbnRDb25zdGFudCAoZ2RiX21vZHVsZSwKLQkJCSAgICJGUkFNRV9V TldJTkRfTk9fUkVBU09OIiwgVU5XSU5EX05PX1JFQVNPTik7Ci0gIFB5TW9k dWxlX0FkZEludENvbnN0YW50IChnZGJfbW9kdWxlLAotCQkJICAgIkZSQU1F X1VOV0lORF9OVUxMX0lEIiwgVU5XSU5EX05VTExfSUQpOwotICBQeU1vZHVs ZV9BZGRJbnRDb25zdGFudCAoZ2RiX21vZHVsZSwKLQkJCSAgICJGUkFNRV9V TldJTkRfRklSU1RfRVJST1IiLCBVTldJTkRfRklSU1RfRVJST1IpOwotICBQ eU1vZHVsZV9BZGRJbnRDb25zdGFudCAoZ2RiX21vZHVsZSwKLQkJCSAgICJG UkFNRV9VTldJTkRfSU5ORVJfSUQiLCBVTldJTkRfSU5ORVJfSUQpOwotICBQ eU1vZHVsZV9BZGRJbnRDb25zdGFudCAoZ2RiX21vZHVsZSwKLQkJCSAgICJG UkFNRV9VTldJTkRfU0FNRV9JRCIsIFVOV0lORF9TQU1FX0lEKTsKLSAgUHlN b2R1bGVfQWRkSW50Q29uc3RhbnQgKGdkYl9tb2R1bGUsCi0JCQkgICAiRlJB TUVfVU5XSU5EX05PX1NBVkVEX1BDIiwgVU5XSU5EX05PX1NBVkVEX1BDKTsK KworI2RlZmluZSBTRVQobmFtZSwgZGVzY3JpcHRpb24pIFwKKyAgUHlNb2R1 bGVfQWRkSW50Q29uc3RhbnQgKGdkYl9tb2R1bGUsICJGUkFNRV8iI25hbWUs IG5hbWUpOworI2RlZmluZSBGSVJTVF9FUlJPUihuYW1lKSBcCisgIFB5TW9k dWxlX0FkZEludENvbnN0YW50IChnZGJfbW9kdWxlLCAiRlJBTUVfIiNuYW1l LCBuYW1lKTsKKyNpbmNsdWRlICJ1bndpbmRfc3RvcF9yZWFzb25zLmRlZiIK KyN1bmRlZiBTRVQKIAogICBQeV9JTkNSRUYgKCZmcmFtZV9vYmplY3RfdHlw ZSk7CiAgIFB5TW9kdWxlX0FkZE9iamVjdCAoZ2RiX21vZHVsZSwgIkZyYW1l IiwgKFB5T2JqZWN0ICopICZmcmFtZV9vYmplY3RfdHlwZSk7CmRpZmYgLS1n aXQgYS9nZGIvc3RhY2suYyBiL2dkYi9zdGFjay5jCmluZGV4IDk1M2QzYmQu LjAwMzcyNWEgMTAwNjQ0Ci0tLSBhL2dkYi9zdGFjay5jCisrKyBiL2dkYi9z dGFjay5jCkBAIC0xNjI1LDcgKzE2MjUsNyBAQCBiYWNrdHJhY2VfY29tbWFu ZF8xIChjaGFyICpjb3VudF9leHAsIGludCBzaG93X2xvY2FscywgaW50IGZy b21fdHR5KQogICAgICAgZW51bSB1bndpbmRfc3RvcF9yZWFzb24gcmVhc29u OwogCiAgICAgICByZWFzb24gPSBnZXRfZnJhbWVfdW53aW5kX3N0b3BfcmVh c29uICh0cmFpbGluZyk7Ci0gICAgICBpZiAocmVhc29uID4gVU5XSU5EX0ZJ UlNUX0VSUk9SKQorICAgICAgaWYgKHJlYXNvbiA+PSBVTldJTkRfRklSU1Rf RVJST1IpCiAJcHJpbnRmX2ZpbHRlcmVkIChfKCJCYWNrdHJhY2Ugc3RvcHBl ZDogJXNcbiIpLAogCQkJIGZyYW1lX3N0b3BfcmVhc29uX3N0cmluZyAocmVh c29uKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvZ2RiL3Vud2luZF9zdG9wX3Jl YXNvbnMuZGVmIGIvZ2RiL3Vud2luZF9zdG9wX3JlYXNvbnMuZGVmCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhMzRmZWIKLS0tIC9k ZXYvbnVsbAorKysgYi9nZGIvdW53aW5kX3N0b3BfcmVhc29ucy5kZWYKQEAg LTAsMCArMSw4MCBAQAorLyogQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IEdEQi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor ICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworLyogUmVh c29ucyB3aHkgZnJhbWVzIGNvdWxkIG5vdCBiZSBmdXJ0aGVyIHVud291bmQK KyAgIFNFVCAobmFtZSwgZGVzY3JpcHRpb24pCisgIAorICAgQWZ0ZXIgdGhp cyByZWFzb24gbmFtZSwgYWxsIHJlYXNvbnMgc2hvdWxkIGJlIGNvbnNpZGVy ZWQgZXJyb3JzOworICAgaS5lLjogYWJub3JtYWwgc3RhY2sgdGVybWluYXRp b24uCisgICBGSVJTVF9FUlJPUiAobmFtZSkgIAorICAgCisgICBGaXJzdCBh bmQgTGFzdCByZWFzb24gZGVmaW5lZAorICAgRklSU1RfRU5UUlkgKG5hbWUp CisgICBMQVNUX0VOVFJZIChuYW1lKSAgKi8KKworI2lmZGVmIFNFVAorLyog Tm8gcGFydGljdWxhciByZWFzb247IGVpdGhlciB3ZSBoYXZlbid0IHRyaWVk IHVud2luZGluZyB5ZXQsIAorICAgb3Igd2UgZGlkbid0IGZhaWwuICAqLwor U0VUIChVTldJTkRfTk9fUkVBU09OLCAibm8gcmVhc29uIikKKworLyogVGhl IHByZXZpb3VzIGZyYW1lJ3MgYW5hbHl6ZXIgcmV0dXJucyBhbiBpbnZhbGlk IHJlc3VsdAorICAgZnJvbSB0aGlzX2lkLgorCisgICBGSVhNRSBkcm93LzIw MDYtMDgtMTY6IFRoaXMgaXMgaG93IEdEQiB1c2VkIHRvIGluZGljYXRlIGVu ZCBvZgorICAgc3RhY2suICBXZSBzaG91bGQgbWlncmF0ZSB0byBhIG1vZGVs IHdoZXJlIGZyYW1lcyBhbHdheXMgaGF2ZSBhCisgICB2YWxpZCBJRCwgYW5k IHRoaXMgYmVjb21lcyBub3QganVzdCBhbiBlcnJvciBidXQgYW4gaW50ZXJu YWwKKyAgIGVycm9yLiAgQnV0IHRoYXQncyBhIHByb2plY3QgZm9yIGFub3Ro ZXIgZGF5LiAgKi8KK1NFVCAoVU5XSU5EX05VTExfSUQsICJ1bndpbmRlciBk aWQgbm90IHJlcG9ydCBmcmFtZSBJRCIpCisKKy8qIFRoaXMgZnJhbWUgaXMg dGhlIG91dGVybW9zdC4gICovCitTRVQgKFVOV0lORF9PVVRFUk1PU1QsICJv dXRlcm1vc3QiKQorCisvKiBDYW4ndCB1bndpbmQgZnVydGhlciwgYmVjYXVz ZSB0aGF0IHdvdWxkIHJlcXVpcmUga25vd2luZyB0aGUKKyAgIHZhbHVlcyBv ZiByZWdpc3RlcnMgb3IgbWVtb3J5IHRoYXQgaGF2ZW4ndCBiZWVuIGNvbGxl Y3RlZC4gICovCitTRVQgKFVOV0lORF9VTkFWQUlMQUJMRSwgXAorICAgICAi bm90IGVub3VnaCByZWdpc3RlcnMgb3IgbWVtb3J5IGF2YWlsYWJsZSB0byB1 bndpbmQgZnVydGhlciIpCisKKy8qIFRoaXMgZnJhbWUgSUQgbG9va3MgbGlr ZSBpdCBvdWdodCB0byBiZWxvbmcgdG8gYSBORVhUIGZyYW1lLAorICAgYnV0 IHdlIGdvdCBpdCBmb3IgYSBQUkVWIGZyYW1lLiAgTm9ybWFsbHksIHRoaXMg aXMgYSBzaWduIG9mCisgICB1bndpbmRlciBmYWlsdXJlLiAgSXQgY291bGQg YWxzbyBpbmRpY2F0ZSBzdGFjayBjb3JydXB0aW9uLiAgKi8KK1NFVCAoVU5X SU5EX0lOTkVSX0lELCAicHJldmlvdXMgZnJhbWUgaW5uZXIgdG8gdGhpcyBm cmFtZSAoY29ycnVwdCBzdGFjaz8pIikKKworLyogVGhpcyBmcmFtZSBoYXMg dGhlIHNhbWUgSUQgYXMgdGhlIHByZXZpb3VzIG9uZS4gIFRoYXQgbWVhbnMK KyAgIHRoYXQgdW53aW5kaW5nIGZ1cnRoZXIgd291bGQgYWxtb3N0IGNlcnRh aW5seSBnaXZlIHVzIGFub3RoZXIKKyAgIGZyYW1lIHdpdGggZXhhY3RseSB0 aGUgc2FtZSBJRCwgc28gYnJlYWsgdGhlIGNoYWluLiAgTm9ybWFsbHksCisg ICB0aGlzIGlzIGEgc2lnbiBvZiB1bndpbmRlciBmYWlsdXJlLiAgSXQgY291 bGQgYWxzbyBpbmRpY2F0ZQorICAgc3RhY2sgY29ycnVwdGlvbi4gICovCitT RVQgKFVOV0lORF9TQU1FX0lELCAicHJldmlvdXMgZnJhbWUgaWRlbnRpY2Fs IHRvIHRoaXMgZnJhbWUgKGNvcnJ1cHQgc3RhY2s/KSIpCisKKy8qIFRoZSBm cmFtZSB1bndpbmRlciBkaWRuJ3QgZmluZCBhbnkgc2F2ZWQgUEMsIGJ1dCB3 ZSBuZWVkZWQKKyAgIG9uZSB0byB1bndpbmQgZnVydGhlci4gICovCitTRVQg KFVOV0lORF9OT19TQVZFRF9QQywgImZyYW1lIGRpZCBub3Qgc2F2ZSB0aGUg UEMiKQorCisjZW5kaWYgLyogU0VUICovCisKKworI2lmZGVmIEZJUlNUX0VS Uk9SCitGSVJTVF9FUlJPUiAoVU5XSU5EX1VOQVZBSUxBQkxFKQorI2VuZGlm CisKKyNpZmRlZiBGSVJTVF9FTlRSWQorRklSU1RfRU5UUlkgKFVOV0lORF9O T19SRUFTT04pCisjZW5kaWYKKworI2lmZGVmIExBU1RfRU5UUlkKK0xBU1Rf RU5UUlkgKFVOV0lORF9OT19TQVZFRF9QQykKKyNlbmRpZgotLSAKMS43LjYu NAoK --f46d0438927f92337504b04492d6--