From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12146 invoked by alias); 2 Feb 2014 20:06:37 -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 12128 invoked by uid 89); 2 Feb 2014 20:06:36 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ea0-f179.google.com Received: from mail-ea0-f179.google.com (HELO mail-ea0-f179.google.com) (209.85.215.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sun, 02 Feb 2014 20:06:34 +0000 Received: by mail-ea0-f179.google.com with SMTP id q10so2782970ead.38 for ; Sun, 02 Feb 2014 12:06:31 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to:cc :content-type; bh=YJzubY0bv9Vdy/f+XgN0sibcPDKXvkAxmYS9eadutow=; b=R6KFpIU3Zf4kww8oAf3EO/4yff3PdiX3GICz/AmM4ZDl8ivoj7jr+GLNGBg7gATKFD ZTCdv7L9skaj16TwOjQdDEiiAVyUKzyTcuAMa91OrjP2ktbPk+Z/VeAOcHityTGR7/An NZ7TZ9Y6VsPiCUFsQRgvLLVoSrq3RPAfNhbZAt1ZpT0LcmjpOjMiZjJKbZtWLXnt3fuV cSFKrRW0CATaXUYudFXlmZXjsfaTLDD/+tfNgnosbrTN+pjlqsZaMw13UA+eKgSTUWdF kHIqlooc54ELOTIX2w1lshjHWV89hFc/xK7QaROcpWc65T0eGf7EiCVjOCS47Ittq8Xp MBCQ== X-Gm-Message-State: ALoCoQmMTmceFf5ctokkkq6RfbbxFsmkhbpw8w644INH8eL1KJW3yayixY5ee8SIE9r3jZGN8ove8YeWL85cVQ1Rfng5hKM74hUZVbFxPwQVLkAQr6gvoXQUdtTGxodNNNWhljaKb0uSh1H/EKmAy53UyYYK4jjuslpQoPDOTtZMuG9quRyUaZ1qGzPxYwbS5FAU0N5ViQAmUJDnYWyqGEX/pV5/Ma756A== MIME-Version: 1.0 X-Received: by 10.14.216.193 with SMTP id g41mr39489848eep.13.1391371591655; Sun, 02 Feb 2014 12:06:31 -0800 (PST) Received: by 10.14.80.138 with HTTP; Sun, 2 Feb 2014 12:06:31 -0800 (PST) Date: Sun, 02 Feb 2014 20:06:00 -0000 Message-ID: Subject: [RFC/Patch v4] Call overloaded operators to perform valid Python operations on struct/class values. From: Siva Chandra To: Doug Evans , Eli Zaretskii Cc: gdb-patches , Tom Tromey Content-Type: multipart/mixed; boundary=047d7b62207278d86104f171f125 X-IsSubscribed: yes X-SW-Source: 2014-02/txt/msg00005.txt.bz2 --047d7b62207278d86104f171f125 Content-Type: text/plain; charset=UTF-8 Content-length: 1206 On Sat, Jan 25, 2014 at 10:45 AM, Doug Evans wrote: > IWBN if the docs listed exactly which operations are supported. I have added it now in the attached patch. Eli should probably take another look. > [I realize this patch relies on the user-defined method patch, so it > can't go in just yet.] Are you referring to the debug methods patch? If yes, I do think this patch relies on that patch. This is an independent feature which would make writing debug methods simpler (IMO). 2014-02-02 Siva Chandra Reddy Call overloaded operators to perform valid Python operations on struct/class values. * NEWS (Python Scripting): Add entry for this new feature. * python/py-value.c (valpy_binop): Call value_x_binop for struct and class values. testsuite/ * gdb.python/py-value-cc.cc: Improve test case to enable testing operations on gdb.Value objects. * gdb.python/py-value-cc.exp: Add new test to test operations on gdb.Value objects. doc/ * gdb.texinfo (Values From Inferior): Add description about performing valid Python operations on gdb.Value objects. --047d7b62207278d86104f171f125 Content-Type: text/plain; charset=US-ASCII; name="python_op_patch_v4.txt" Content-Disposition: attachment; filename="python_op_patch_v4.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hr6qnbf50 Content-length: 8536 ZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggNTA2MmUw Mi4uYzY2OWZkNCAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2RiL05F V1MKQEAgLTUxLDYgKzUxLDEyIEBAIHFYZmVyOmJ0cmFjZTpyZWFkJ3MgYW5u ZXgKICAgVGhlIHFYZmVyOmJ0cmFjZTpyZWFkIHBhY2tldCBzdXBwb3J0cyBh IG5ldyBhbm5leCAnZGVsdGEnIHRvIHJlYWQKICAgYnJhbmNoIHRyYWNlIGlu Y3JlbWVudGFsbHkuCiAKKyogUHl0aG9uIFNjcmlwdGluZworCisgICoqIFZh bGlkIFB5dGhvbiBvcGVyYXRpb25zIG9uIGdkYi5WYWx1ZSBvYmplY3RzIHJl cHJlc2VudGluZworICAgICBzdHJ1Y3RzL2NsYXNzZXMgaW52b2tlIHRoZSBj b3JyZXNwb25kaW5nIG92ZXJsb2FkZWQgb3BlcmF0b3JzIGlmCisgICAgIGF2 YWlsYWJsZS4KKwogKioqIENoYW5nZXMgaW4gR0RCIDcuNwogCiAqIEltcHJv dmVkIHN1cHBvcnQgZm9yIHByb2Nlc3MgcmVjb3JkLXJlcGxheSBhbmQgcmV2 ZXJzZSBkZWJ1Z2dpbmcgb24KZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRl eGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvCmluZGV4IGFmMTQyODYuLmRi ZWFjNmEgMTAwNjQ0Ci0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KKysrIGIv Z2RiL2RvYy9nZGIudGV4aW5mbwpAQCAtMjQwMzgsNyArMjQwMzgsMjYgQEAg YmFyID0gc29tZV92YWwgKyAyCiAKIEBub2luZGVudAogQXMgcmVzdWx0IG9m IHRoaXMsIEBjb2Rle2Jhcn0gd2lsbCBhbHNvIGJlIGEgQGNvZGV7Z2RiLlZh bHVlfSBvYmplY3QKLXdob3NlIHZhbHVlcyBhcmUgb2YgdGhlIHNhbWUgdHlw ZSBhcyB0aG9zZSBvZiBAY29kZXtzb21lX3ZhbH0uCit3aG9zZSB2YWx1ZXMg YXJlIG9mIHRoZSBzYW1lIHR5cGUgYXMgdGhvc2Ugb2YgQGNvZGV7c29tZV92 YWx9LiAgVmFsaWQKK1B5dGhvbiBvcGVyYXRpb25zIGNhbiBhbHNvIGJlIHBl cmZvcm1lZCBvbiBAY29kZXtnZGIuVmFsdWV9IG9iamVjdHMKK3JlcHJlc2Vu dGluZyBhIEBjb2Rle3N0cnVjdH0gb3IgQGNvZGV7Y2xhc3N9IG9iamVjdC4g IEZvciBzdWNoIGNhc2VzLAordGhlIG92ZXJsb2FkZWQgb3BlcmF0b3IgKGlm IHByZXNlbnQpLCBpcyB1c2VkIHRvIHBlcmZvcm0gdGhlIG9wZXJhdGlvbi4K K0ZvciBleGFtcGxlLCBpZiBAY29kZXt2YWwxfWFuZCBAY29kZXt2YWwyfSBh cmUgQGNvZGV7Z2RiLlZhbHVlfSBvYmplY3RzCityZXByZXNlbnRpbmcgaW5z dGFuY2VzIG9mIGEgQGNvZGV7Y2xhc3N9IHdoaWNoIG92ZXJsb2FkcyB0aGUg QGNvZGV7K30KK29wZXJhdG9yLCB0aGVuIG9uZSBjYW4gdXNlIHRoZSBAY29k ZXsrfSBvcGVyYXRvciBpbiB0aGVpciBQeXRob24gc2NyaXB0CithcyBmb2xs b3dzOgorCitAc21hbGxleGFtcGxlCit2YWwzID0gdmFsMSArIHZhbDIKK0Bl bmQgc21hbGxleGFtcGxlCisKK0Bub2luZGVudAorVGhlIHJlc3VsdCBvZiB0 aGUgb3BlcmF0aW9uIEBjb2Rle3ZhbDN9IGlzIGFsc28gYSBAY29kZXtnZGIu VmFsdWV9CitvYmplY3QgY29ycmVzcG9uZGluZyB0byB0aGUgdmFsdWUgcmV0 dXJuZWQgYnkgdGhlIG92ZXJsb2FkZWQgQGNvZGV7K30KK29wZXJhdG9yLiAg SW4gZ2VuZXJhbCwgb3ZlcmxvYWRlZCBvcGVyYXRvcnMgYXJlIGludm9rZWQg Zm9yIHRoZQorZm9sbG93aW5nIG9wZXJhdG9yczogQGNvZGV7K30gKGJpbmFy eSBhZGRpdGlvbiksIEBjb2Rley19IChiaW5hcnkKK3N1YnRyYWN0aW9uKSwg QGNvZGV7Kn0gKG11bHRpcGxpY2F0aW9uKSwgQGNvZGV7L30sIEBjb2RleyV9 LCBAY29kZXs8PH0sCitAY29kZXs+Pn0sIEBjb2Rle3x9LCBAY29kZXsmfSwg QGNvZGV7Xn0uCiAKIEluZmVyaW9yIHZhbHVlcyB0aGF0IGFyZSBzdHJ1Y3R1 cmVzIG9yIGluc3RhbmNlcyBvZiBzb21lIGNsYXNzIGNhbgogYmUgYWNjZXNz ZWQgdXNpbmcgdGhlIFB5dGhvbiBAZGZue2RpY3Rpb25hcnkgc3ludGF4fS4g IEZvciBleGFtcGxlLCBpZgpkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS12 YWx1ZS5jIGIvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCmluZGV4IDY3ZTZjNGUu LmYzODJlYzUgMTAwNjQ0Ci0tLSBhL2dkYi9weXRob24vcHktdmFsdWUuYwor KysgYi9nZGIvcHl0aG9uL3B5LXZhbHVlLmMKQEAgLTkzNCw2ICs5MzQsOCBA QCB2YWxweV9iaW5vcCAoZW51bSB2YWxweV9vcGNvZGUgb3Bjb2RlLCBQeU9i amVjdCAqc2VsZiwgUHlPYmplY3QgKm90aGVyKQogICAgICAgc3RydWN0IHZh bHVlICphcmcxLCAqYXJnMjsKICAgICAgIHN0cnVjdCBjbGVhbnVwICpjbGVh bnVwID0gbWFrZV9jbGVhbnVwX3ZhbHVlX2ZyZWVfdG9fbWFyayAodmFsdWVf bWFyayAoKSk7CiAgICAgICBzdHJ1Y3QgdmFsdWUgKnJlc192YWwgPSBOVUxM OworICAgICAgZW51bSBleHBfb3Bjb2RlIG9wID0gT1BfTlVMTDsKKyAgICAg IGludCBoYW5kbGVkID0gMDsKIAogICAgICAgLyogSWYgdGhlIGdkYi5WYWx1 ZSBvYmplY3QgaXMgdGhlIHNlY29uZCBvcGVyYW5kLCB0aGVuIGl0IHdpbGwg YmUgcGFzc2VkCiAJIHRvIHVzIGFzIHRoZSBPVEhFUiBhcmd1bWVudCwgYW5k IFNFTEYgd2lsbCBiZSBhbiBlbnRpcmVseSBkaWZmZXJlbnQKQEAgLTk2NSw2 ICs5NjcsNyBAQCB2YWxweV9iaW5vcCAoZW51bSB2YWxweV9vcGNvZGUgb3Bj b2RlLCBQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm90aGVyKQogCSAgICBD SEVDS19UWVBFREVGIChydHlwZSk7CiAJICAgIHJ0eXBlID0gU1RSSVBfUkVG RVJFTkNFIChydHlwZSk7CiAKKwkgICAgaGFuZGxlZCA9IDE7CiAJICAgIGlm IChUWVBFX0NPREUgKGx0eXBlKSA9PSBUWVBFX0NPREVfUFRSCiAJCSYmIGlz X2ludGVncmFsX3R5cGUgKHJ0eXBlKSkKIAkgICAgICByZXNfdmFsID0gdmFs dWVfcHRyYWRkIChhcmcxLCB2YWx1ZV9hc19sb25nIChhcmcyKSk7CkBAIC05 NzIsNyArOTc1LDEwIEBAIHZhbHB5X2Jpbm9wIChlbnVtIHZhbHB5X29wY29k ZSBvcGNvZGUsIFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqb3RoZXIpCiAJ CSAgICAgJiYgaXNfaW50ZWdyYWxfdHlwZSAobHR5cGUpKQogCSAgICAgIHJl c192YWwgPSB2YWx1ZV9wdHJhZGQgKGFyZzIsIHZhbHVlX2FzX2xvbmcgKGFy ZzEpKTsKIAkgICAgZWxzZQotCSAgICAgIHJlc192YWwgPSB2YWx1ZV9iaW5v cCAoYXJnMSwgYXJnMiwgQklOT1BfQUREKTsKKwkgICAgICB7CisJCWhhbmRs ZWQgPSAwOworCQlvcCA9IEJJTk9QX0FERDsKKwkgICAgICB9CiAJICB9CiAJ ICBicmVhazsKIAljYXNlIFZBTFBZX1NVQjoKQEAgLTk4NSw2ICs5OTEsNyBA QCB2YWxweV9iaW5vcCAoZW51bSB2YWxweV9vcGNvZGUgb3Bjb2RlLCBQeU9i amVjdCAqc2VsZiwgUHlPYmplY3QgKm90aGVyKQogCSAgICBDSEVDS19UWVBF REVGIChydHlwZSk7CiAJICAgIHJ0eXBlID0gU1RSSVBfUkVGRVJFTkNFIChy dHlwZSk7CiAKKwkgICAgaGFuZGxlZCA9IDE7CiAJICAgIGlmIChUWVBFX0NP REUgKGx0eXBlKSA9PSBUWVBFX0NPREVfUFRSCiAJCSYmIFRZUEVfQ09ERSAo cnR5cGUpID09IFRZUEVfQ09ERV9QVFIpCiAJICAgICAgLyogQSBwdHJkaWZm X3QgZm9yIHRoZSB0YXJnZXQgd291bGQgYmUgcHJlZmVyYWJsZSBoZXJlLiAg Ki8KQEAgLTk5NCwzOCArMTAwMSw0OSBAQCB2YWxweV9iaW5vcCAoZW51bSB2 YWxweV9vcGNvZGUgb3Bjb2RlLCBQeU9iamVjdCAqc2VsZiwgUHlPYmplY3Qg Km90aGVyKQogCQkgICAgICYmIGlzX2ludGVncmFsX3R5cGUgKHJ0eXBlKSkK IAkgICAgICByZXNfdmFsID0gdmFsdWVfcHRyYWRkIChhcmcxLCAtIHZhbHVl X2FzX2xvbmcgKGFyZzIpKTsKIAkgICAgZWxzZQotCSAgICAgIHJlc192YWwg PSB2YWx1ZV9iaW5vcCAoYXJnMSwgYXJnMiwgQklOT1BfU1VCKTsKKwkgICAg ICB7CisJCWhhbmRsZWQgPSAwOworCQlvcCA9IEJJTk9QX1NVQjsKKwkgICAg ICB9CiAJICB9CiAJICBicmVhazsKIAljYXNlIFZBTFBZX01VTDoKLQkgIHJl c192YWwgPSB2YWx1ZV9iaW5vcCAoYXJnMSwgYXJnMiwgQklOT1BfTVVMKTsK KwkgIG9wID0gQklOT1BfTVVMOwogCSAgYnJlYWs7CiAJY2FzZSBWQUxQWV9E SVY6Ci0JICByZXNfdmFsID0gdmFsdWVfYmlub3AgKGFyZzEsIGFyZzIsIEJJ Tk9QX0RJVik7CisJICBvcCA9IEJJTk9QX0RJVjsKIAkgIGJyZWFrOwogCWNh c2UgVkFMUFlfUkVNOgotCSAgcmVzX3ZhbCA9IHZhbHVlX2Jpbm9wIChhcmcx LCBhcmcyLCBCSU5PUF9SRU0pOworCSAgb3AgPSBCSU5PUF9SRU07CiAJICBi cmVhazsKIAljYXNlIFZBTFBZX1BPVzoKLQkgIHJlc192YWwgPSB2YWx1ZV9i aW5vcCAoYXJnMSwgYXJnMiwgQklOT1BfRVhQKTsKKwkgIG9wID0gQklOT1Bf RVhQOwogCSAgYnJlYWs7CiAJY2FzZSBWQUxQWV9MU0g6Ci0JICByZXNfdmFs ID0gdmFsdWVfYmlub3AgKGFyZzEsIGFyZzIsIEJJTk9QX0xTSCk7CisJICBv cCA9IEJJTk9QX0xTSDsKIAkgIGJyZWFrOwogCWNhc2UgVkFMUFlfUlNIOgot CSAgcmVzX3ZhbCA9IHZhbHVlX2Jpbm9wIChhcmcxLCBhcmcyLCBCSU5PUF9S U0gpOworCSAgb3AgPSBCSU5PUF9SU0g7CiAJICBicmVhazsKIAljYXNlIFZB TFBZX0JJVEFORDoKLQkgIHJlc192YWwgPSB2YWx1ZV9iaW5vcCAoYXJnMSwg YXJnMiwgQklOT1BfQklUV0lTRV9BTkQpOworCSAgb3AgPSBCSU5PUF9CSVRX SVNFX0FORDsKIAkgIGJyZWFrOwogCWNhc2UgVkFMUFlfQklUT1I6Ci0JICBy ZXNfdmFsID0gdmFsdWVfYmlub3AgKGFyZzEsIGFyZzIsIEJJTk9QX0JJVFdJ U0VfSU9SKTsKKwkgIG9wID0gQklOT1BfQklUV0lTRV9JT1I7CiAJICBicmVh azsKIAljYXNlIFZBTFBZX0JJVFhPUjoKLQkgIHJlc192YWwgPSB2YWx1ZV9i aW5vcCAoYXJnMSwgYXJnMiwgQklOT1BfQklUV0lTRV9YT1IpOworCSAgb3Ag PSBCSU5PUF9CSVRXSVNFX1hPUjsKIAkgIGJyZWFrOwogCX0KIAorICAgICAg aWYgKCFoYW5kbGVkKQorCXsKKwkgIGlmIChiaW5vcF91c2VyX2RlZmluZWRf cCAob3AsIGFyZzEsIGFyZzIpKQorCSAgICByZXNfdmFsID0gdmFsdWVfeF9i aW5vcCAoYXJnMSwgYXJnMiwgb3AsIE9QX05VTEwsIEVWQUxfTk9STUFMKTsK KwkgIGVsc2UKKwkgICAgcmVzX3ZhbCA9IHZhbHVlX2Jpbm9wIChhcmcxLCBh cmcyLCBvcCk7CisJfQorCiAgICAgICBpZiAocmVzX3ZhbCkKIAlyZXN1bHQg PSB2YWx1ZV90b192YWx1ZV9vYmplY3QgKHJlc192YWwpOwogCmRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUtY2MuY2Mg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUtY2MuY2MKaW5k ZXggYWNlOTU3YS4uN2VhNGY1ZCAxMDA2NDQKLS0tIGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5LXZhbHVlLWNjLmNjCisrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS12YWx1ZS1jYy5jYwpAQCAtMTcsOSArMTcsMTgg QEAKIAogY2xhc3MgQSB7CiAgcHVibGljOgorICBpbnQgb3BlcmF0b3IrIChj b25zdCBpbnQgYTEpOworCisgcHVibGljOgogICBpbnQgYTsKIH07CiAKK2lu dAorQTo6b3BlcmF0b3IrIChjb25zdCBpbnQgYTEpCit7CisgIHJldHVybiBh ICsgYTE7Cit9CisKIHVuaW9uIFUgewogICBpbnQgYTsKICAgY2hhciBjOwpA QCAtODgsNSArOTcsNyBAQCBtYWluICgpCiB7CiAgIEEgb2JqOwogCisgIG9i ai5hID0gNTsKKwogICByZXR1cm4gZnVuYyAob2JqKTsKIH0KZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS1jYy5leHAg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUtY2MuZXhwCmlu ZGV4IGU2MzUxZjYuLjk0OWYwNGYgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS12YWx1ZS1jYy5leHAKKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLWNjLmV4cApAQCAtOTksMyArOTks NyBAQCBnZGJfdGVzdCAicHl0aG9uIHByaW50IHh0ZFxbeF9maWVsZHNcWzFc XVxdXFsnYSdcXSIgIjEwMiIgInh0ZC0+YSB2aWEgZmllbGQiCiBnZGJfdGVz dCAicHl0aG9uIHByaW50IGxlbih1dV9maWVsZHMpIiAiMiIgIm51bWJlciBv ZiBmaWVsZHMgaW4gdXUiCiBnZGJfdGVzdCAicHl0aG9uIHByaW50IHV1XFt1 dV9maWVsZHNcWzBcXVxdXFsneCdcXSIgIjEwMDAiICJ1dS54IHZpYSBmaWVs ZCIKIGdkYl90ZXN0ICJweXRob24gcHJpbnQgdXVcW3V1X2ZpZWxkc1xbMVxd XF1cWydhJ1xdIiAiMTAwMCIgInV1LmEgdmlhIGZpZWxkIgorCisjIFRlc3Qg b3ZlcmxvYWRlZCBvcGVyYXRvcnMuCitnZGJfdGVzdF9ub19vdXRwdXQgInB5 dGhvbiBhID0gZ2RiLnBhcnNlX2FuZF9ldmFsKCdhJykiICJpbml0IGEiCitn ZGJfdGVzdCAicHl0aG9uIHByaW50IGEgKyA1IiAiMTAiICJhICsgNSIK --047d7b62207278d86104f171f125--