From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2387 invoked by alias); 20 Feb 2014 00:04:08 -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 2318 invoked by uid 89); 20 Feb 2014 00:04:07 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.9 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-ee0-f43.google.com Received: from mail-ee0-f43.google.com (HELO mail-ee0-f43.google.com) (74.125.83.43) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Thu, 20 Feb 2014 00:04:06 +0000 Received: by mail-ee0-f43.google.com with SMTP id e51so486359eek.16 for ; Wed, 19 Feb 2014 16:04:02 -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:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=qeMqiJebUWO3lJ0Jpc4czKVowh0qK7N26935/mWtAX4=; b=FZVVsKigiFWEgOQnGx7KIRlXyXwdrQU3WKZ7VFX2TPKWQ48om+6V5Zh8ad6ShdB6TP 47iFUVHC/0HQQvdEhyxYko4pANRbryTFBjUBikKJgDpcIFOR0+sXbkUTHS4gKnLFwkgm 1sG+hpLtPRlgpNZmlBYqKOdrSvX2fw6Ri+9kP01ugY53daEsvtF8BAS2TT1usmf3ljT8 GYQMJoFO3Lu8gYjWbIGp3QBKjOCy1EgSDTq6tLYMRdVB7z54Z+ROUeIDTP6KBQVnnUR/ YhVLqylJGeU2QLrLY6AWzG3wXGbvkRQyRjagi+bXJcSjr/JOJT9Nb8jAF1ez+laYt3qg 7Ieg== X-Gm-Message-State: ALoCoQl3W+fNzguHXhiwdy9/nDa9NoaqiZdya9dtln8CsIxWRD5Pft4Gh+mVh+qsg0nlMVuC2O97A5Awumwq/Ykqd9fvFycenEDO8fuPLWT8GJSfaXVMD1ph3ASxYZwRoL6kbYnulNGTNY9XPej0C/9z7aZagBHXB6HpA5fNqhGV4HPYxKa2k/LahGFD0YtTj5ndv30M4q1dSrK26H2huEwrNhaZvlwICg== MIME-Version: 1.0 X-Received: by 10.14.216.193 with SMTP id g41mr43621221eep.13.1392854642682; Wed, 19 Feb 2014 16:04:02 -0800 (PST) Received: by 10.15.48.197 with HTTP; Wed, 19 Feb 2014 16:04:02 -0800 (PST) In-Reply-To: References: Date: Thu, 20 Feb 2014 00:04:00 -0000 Message-ID: Subject: Re: [RFC/Patch v4] Call overloaded operators to perform valid Python operations on struct/class values. From: Siva Chandra To: Doug Evans Cc: Eli Zaretskii , gdb-patches , Tom Tromey Content-Type: multipart/mixed; boundary=047d7b62207233c87004f2cb3ec0 X-IsSubscribed: yes X-SW-Source: 2014-02/txt/msg00617.txt.bz2 --047d7b62207233c87004f2cb3ec0 Content-Type: text/plain; charset=UTF-8 Content-length: 1058 I have pushed the attached patch (which includes the corrections suggested by Eli). On Thu, Feb 6, 2014 at 10:53 PM, Doug Evans wrote: > Hi. > > The patch is fine with me. > > I put in some time to play with the patch. > One thing I wondered about is what happens if the user does string1 + string2? > We do leak memory. That's not a problem with this patch of course, > though by making this scriptable the problem gets worse. > I filed https://sourceware.org/bugzilla/show_bug.cgi?id=16537 > > btw, Just writing this down since it's on my mind: > If anything needs to be done it should be addressed in a separate > patch. And maybe leaving things as-is is ok, and just a doc addition > is all that's needed. Anyways, hand called functions (which includes > c++ operators) run the inferior (setting aside using debug methods). > The more we make it easy to invoke c++ operators the more users are > going to run into the issues of hand called functions (e.g. what if > they have a breakpoint set that the c++ operator happens to trip?). --047d7b62207233c87004f2cb3ec0 Content-Type: text/plain; charset=US-ASCII; name="python_op_patch_v5.txt" Content-Disposition: attachment; filename="python_op_patch_v5.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hrv9oqzr0 Content-length: 8504 ZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggYjU0YTQx NC4uMTM1ODU4ZSAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2RiL05F V1MKQEAgLTgyLDYgKzgyLDEyIEBAIHFYZmVyOmJ0cmFjZTpyZWFkJ3MgYW5u ZXgKICAgVGhlIHFYZmVyOmJ0cmFjZTpyZWFkIHBhY2tldCBzdXBwb3J0cyBh IG5ldyBhbm5leCAnZGVsdGEnIHRvIHJlYWQKICAgYnJhbmNoIHRyYWNlIGlu Y3JlbWVudGFsbHkuCiAKKyogUHl0aG9uIFNjcmlwdGluZworCisgICoqIFZh bGlkIFB5dGhvbiBvcGVyYXRpb25zIG9uIGdkYi5WYWx1ZSBvYmplY3RzIHJl cHJlc2VudGluZworICAgICBzdHJ1Y3RzL2NsYXNzZXMgaW52b2tlIHRoZSBj b3JyZXNwb25kaW5nIG92ZXJsb2FkZWQgb3BlcmF0b3JzIGlmCisgICAgIGF2 YWlsYWJsZS4KKwogKiBOZXcgdGFyZ2V0cwogUG93ZXJQQzY0IEdOVS9MaW51 eCBsaXR0bGUtZW5kaWFuCXBvd2VycGM2NGxlLSotbGludXgqCiAKZGlmZiAt LWdpdCBhL2dkYi9kb2MvcHl0aG9uLnRleGkgYi9nZGIvZG9jL3B5dGhvbi50 ZXhpCmluZGV4IDYyNjM2YTQuLjkwYjcwNzQgMTAwNjQ0Ci0tLSBhL2dkYi9k b2MvcHl0aG9uLnRleGkKKysrIGIvZ2RiL2RvYy9weXRob24udGV4aQpAQCAt NTI4LDcgKzUyOCwyNiBAQCBiYXIgPSBzb21lX3ZhbCArIDIKIAogQG5vaW5k ZW50CiBBcyByZXN1bHQgb2YgdGhpcywgQGNvZGV7YmFyfSB3aWxsIGFsc28g YmUgYSBAY29kZXtnZGIuVmFsdWV9IG9iamVjdAotd2hvc2UgdmFsdWVzIGFy ZSBvZiB0aGUgc2FtZSB0eXBlIGFzIHRob3NlIG9mIEBjb2Rle3NvbWVfdmFs fS4KK3dob3NlIHZhbHVlcyBhcmUgb2YgdGhlIHNhbWUgdHlwZSBhcyB0aG9z ZSBvZiBAY29kZXtzb21lX3ZhbH0uICBWYWxpZAorUHl0aG9uIG9wZXJhdGlv bnMgY2FuIGFsc28gYmUgcGVyZm9ybWVkIG9uIEBjb2Rle2dkYi5WYWx1ZX0g b2JqZWN0cworcmVwcmVzZW50aW5nIGEgQGNvZGV7c3RydWN0fSBvciBAY29k ZXtjbGFzc30gb2JqZWN0LiAgRm9yIHN1Y2ggY2FzZXMsCit0aGUgb3Zlcmxv YWRlZCBvcGVyYXRvciAoaWYgcHJlc2VudCksIGlzIHVzZWQgdG8gcGVyZm9y bSB0aGUgb3BlcmF0aW9uLgorRm9yIGV4YW1wbGUsIGlmIEBjb2Rle3ZhbDF9 IGFuZCBAY29kZXt2YWwyfSBhcmUgQGNvZGV7Z2RiLlZhbHVlfSBvYmplY3Rz CityZXByZXNlbnRpbmcgaW5zdGFuY2VzIG9mIGEgQGNvZGV7Y2xhc3N9IHdo aWNoIG92ZXJsb2FkcyB0aGUgQGNvZGV7K30KK29wZXJhdG9yLCB0aGVuIG9u ZSBjYW4gdXNlIHRoZSBAY29kZXsrfSBvcGVyYXRvciBpbiB0aGVpciBQeXRo b24gc2NyaXB0CithcyBmb2xsb3dzOgorCitAc21hbGxleGFtcGxlCit2YWwz ID0gdmFsMSArIHZhbDIKK0BlbmQgc21hbGxleGFtcGxlCisKK0Bub2luZGVu dAorVGhlIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uIEBjb2Rle3ZhbDN9IGlz IGFsc28gYSBAY29kZXtnZGIuVmFsdWV9CitvYmplY3QgY29ycmVzcG9uZGlu ZyB0byB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgdGhlIG92ZXJsb2FkZWQgQGNv ZGV7K30KK29wZXJhdG9yLiAgSW4gZ2VuZXJhbCwgb3ZlcmxvYWRlZCBvcGVy YXRvcnMgYXJlIGludm9rZWQgZm9yIHRoZQorZm9sbG93aW5nIG9wZXJhdGlv bnM6IEBjb2Rleyt9IChiaW5hcnkgYWRkaXRpb24pLCBAY29kZXstfSAoYmlu YXJ5CitzdWJ0cmFjdGlvbiksIEBjb2Rleyp9IChtdWx0aXBsaWNhdGlvbiks IEBjb2Rley99LCBAY29kZXslfSwgQGNvZGV7PDx9LAorQGNvZGV7Pj59LCBA Y29kZXt8fSwgQGNvZGV7Jn0sIEBjb2Rle159LgogCiBJbmZlcmlvciB2YWx1 ZXMgdGhhdCBhcmUgc3RydWN0dXJlcyBvciBpbnN0YW5jZXMgb2Ygc29tZSBj bGFzcyBjYW4KIGJlIGFjY2Vzc2VkIHVzaW5nIHRoZSBQeXRob24gQGRmbntk aWN0aW9uYXJ5IHN5bnRheH0uICBGb3IgZXhhbXBsZSwgaWYKZGlmZiAtLWdp dCBhL2dkYi9weXRob24vcHktdmFsdWUuYyBiL2dkYi9weXRob24vcHktdmFs dWUuYwppbmRleCBmOGE4YTk4Li43NWFhNjQyIDEwMDY0NAotLS0gYS9nZGIv cHl0aG9uL3B5LXZhbHVlLmMKKysrIGIvZ2RiL3B5dGhvbi9weS12YWx1ZS5j CkBAIC05MzMsNiArOTMzLDggQEAgdmFscHlfYmlub3AgKGVudW0gdmFscHlf b3Bjb2RlIG9wY29kZSwgUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpvdGhl cikKICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnMSwgKmFyZzI7CiAgICAgICBz dHJ1Y3QgY2xlYW51cCAqY2xlYW51cCA9IG1ha2VfY2xlYW51cF92YWx1ZV9m cmVlX3RvX21hcmsgKHZhbHVlX21hcmsgKCkpOwogICAgICAgc3RydWN0IHZh bHVlICpyZXNfdmFsID0gTlVMTDsKKyAgICAgIGVudW0gZXhwX29wY29kZSBv cCA9IE9QX05VTEw7CisgICAgICBpbnQgaGFuZGxlZCA9IDA7CiAKICAgICAg IC8qIElmIHRoZSBnZGIuVmFsdWUgb2JqZWN0IGlzIHRoZSBzZWNvbmQgb3Bl cmFuZCwgdGhlbiBpdCB3aWxsIGJlIHBhc3NlZAogCSB0byB1cyBhcyB0aGUg T1RIRVIgYXJndW1lbnQsIGFuZCBTRUxGIHdpbGwgYmUgYW4gZW50aXJlbHkg ZGlmZmVyZW50CkBAIC05NjQsNiArOTY2LDcgQEAgdmFscHlfYmlub3AgKGVu dW0gdmFscHlfb3Bjb2RlIG9wY29kZSwgUHlPYmplY3QgKnNlbGYsIFB5T2Jq ZWN0ICpvdGhlcikKIAkgICAgQ0hFQ0tfVFlQRURFRiAocnR5cGUpOwogCSAg ICBydHlwZSA9IFNUUklQX1JFRkVSRU5DRSAocnR5cGUpOwogCisJICAgIGhh bmRsZWQgPSAxOwogCSAgICBpZiAoVFlQRV9DT0RFIChsdHlwZSkgPT0gVFlQ RV9DT0RFX1BUUgogCQkmJiBpc19pbnRlZ3JhbF90eXBlIChydHlwZSkpCiAJ ICAgICAgcmVzX3ZhbCA9IHZhbHVlX3B0cmFkZCAoYXJnMSwgdmFsdWVfYXNf bG9uZyAoYXJnMikpOwpAQCAtOTcxLDcgKzk3NCwxMCBAQCB2YWxweV9iaW5v cCAoZW51bSB2YWxweV9vcGNvZGUgb3Bjb2RlLCBQeU9iamVjdCAqc2VsZiwg UHlPYmplY3QgKm90aGVyKQogCQkgICAgICYmIGlzX2ludGVncmFsX3R5cGUg KGx0eXBlKSkKIAkgICAgICByZXNfdmFsID0gdmFsdWVfcHRyYWRkIChhcmcy LCB2YWx1ZV9hc19sb25nIChhcmcxKSk7CiAJICAgIGVsc2UKLQkgICAgICBy ZXNfdmFsID0gdmFsdWVfYmlub3AgKGFyZzEsIGFyZzIsIEJJTk9QX0FERCk7 CisJICAgICAgeworCQloYW5kbGVkID0gMDsKKwkJb3AgPSBCSU5PUF9BREQ7 CisJICAgICAgfQogCSAgfQogCSAgYnJlYWs7CiAJY2FzZSBWQUxQWV9TVUI6 CkBAIC05ODQsNiArOTkwLDcgQEAgdmFscHlfYmlub3AgKGVudW0gdmFscHlf b3Bjb2RlIG9wY29kZSwgUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpvdGhl cikKIAkgICAgQ0hFQ0tfVFlQRURFRiAocnR5cGUpOwogCSAgICBydHlwZSA9 IFNUUklQX1JFRkVSRU5DRSAocnR5cGUpOwogCisJICAgIGhhbmRsZWQgPSAx OwogCSAgICBpZiAoVFlQRV9DT0RFIChsdHlwZSkgPT0gVFlQRV9DT0RFX1BU UgogCQkmJiBUWVBFX0NPREUgKHJ0eXBlKSA9PSBUWVBFX0NPREVfUFRSKQog CSAgICAgIC8qIEEgcHRyZGlmZl90IGZvciB0aGUgdGFyZ2V0IHdvdWxkIGJl IHByZWZlcmFibGUgaGVyZS4gICovCkBAIC05OTMsMzggKzEwMDAsNDkgQEAg dmFscHlfYmlub3AgKGVudW0gdmFscHlfb3Bjb2RlIG9wY29kZSwgUHlPYmpl Y3QgKnNlbGYsIFB5T2JqZWN0ICpvdGhlcikKIAkJICAgICAmJiBpc19pbnRl Z3JhbF90eXBlIChydHlwZSkpCiAJICAgICAgcmVzX3ZhbCA9IHZhbHVlX3B0 cmFkZCAoYXJnMSwgLSB2YWx1ZV9hc19sb25nIChhcmcyKSk7CiAJICAgIGVs c2UKLQkgICAgICByZXNfdmFsID0gdmFsdWVfYmlub3AgKGFyZzEsIGFyZzIs IEJJTk9QX1NVQik7CisJICAgICAgeworCQloYW5kbGVkID0gMDsKKwkJb3Ag PSBCSU5PUF9TVUI7CisJICAgICAgfQogCSAgfQogCSAgYnJlYWs7CiAJY2Fz ZSBWQUxQWV9NVUw6Ci0JICByZXNfdmFsID0gdmFsdWVfYmlub3AgKGFyZzEs IGFyZzIsIEJJTk9QX01VTCk7CisJICBvcCA9IEJJTk9QX01VTDsKIAkgIGJy ZWFrOwogCWNhc2UgVkFMUFlfRElWOgotCSAgcmVzX3ZhbCA9IHZhbHVlX2Jp bm9wIChhcmcxLCBhcmcyLCBCSU5PUF9ESVYpOworCSAgb3AgPSBCSU5PUF9E SVY7CiAJICBicmVhazsKIAljYXNlIFZBTFBZX1JFTToKLQkgIHJlc192YWwg PSB2YWx1ZV9iaW5vcCAoYXJnMSwgYXJnMiwgQklOT1BfUkVNKTsKKwkgIG9w ID0gQklOT1BfUkVNOwogCSAgYnJlYWs7CiAJY2FzZSBWQUxQWV9QT1c6Ci0J ICByZXNfdmFsID0gdmFsdWVfYmlub3AgKGFyZzEsIGFyZzIsIEJJTk9QX0VY UCk7CisJICBvcCA9IEJJTk9QX0VYUDsKIAkgIGJyZWFrOwogCWNhc2UgVkFM UFlfTFNIOgotCSAgcmVzX3ZhbCA9IHZhbHVlX2Jpbm9wIChhcmcxLCBhcmcy LCBCSU5PUF9MU0gpOworCSAgb3AgPSBCSU5PUF9MU0g7CiAJICBicmVhazsK IAljYXNlIFZBTFBZX1JTSDoKLQkgIHJlc192YWwgPSB2YWx1ZV9iaW5vcCAo YXJnMSwgYXJnMiwgQklOT1BfUlNIKTsKKwkgIG9wID0gQklOT1BfUlNIOwog CSAgYnJlYWs7CiAJY2FzZSBWQUxQWV9CSVRBTkQ6Ci0JICByZXNfdmFsID0g dmFsdWVfYmlub3AgKGFyZzEsIGFyZzIsIEJJTk9QX0JJVFdJU0VfQU5EKTsK KwkgIG9wID0gQklOT1BfQklUV0lTRV9BTkQ7CiAJICBicmVhazsKIAljYXNl IFZBTFBZX0JJVE9SOgotCSAgcmVzX3ZhbCA9IHZhbHVlX2Jpbm9wIChhcmcx LCBhcmcyLCBCSU5PUF9CSVRXSVNFX0lPUik7CisJICBvcCA9IEJJTk9QX0JJ VFdJU0VfSU9SOwogCSAgYnJlYWs7CiAJY2FzZSBWQUxQWV9CSVRYT1I6Ci0J ICByZXNfdmFsID0gdmFsdWVfYmlub3AgKGFyZzEsIGFyZzIsIEJJTk9QX0JJ VFdJU0VfWE9SKTsKKwkgIG9wID0gQklOT1BfQklUV0lTRV9YT1I7CiAJICBi cmVhazsKIAl9CiAKKyAgICAgIGlmICghaGFuZGxlZCkKKwl7CisJICBpZiAo Ymlub3BfdXNlcl9kZWZpbmVkX3AgKG9wLCBhcmcxLCBhcmcyKSkKKwkgICAg cmVzX3ZhbCA9IHZhbHVlX3hfYmlub3AgKGFyZzEsIGFyZzIsIG9wLCBPUF9O VUxMLCBFVkFMX05PUk1BTCk7CisJICBlbHNlCisJICAgIHJlc192YWwgPSB2 YWx1ZV9iaW5vcCAoYXJnMSwgYXJnMiwgb3ApOworCX0KKwogICAgICAgaWYg KHJlc192YWwpCiAJcmVzdWx0ID0gdmFsdWVfdG9fdmFsdWVfb2JqZWN0IChy ZXNfdmFsKTsKIApkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5LXZhbHVlLWNjLmNjIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LXZhbHVlLWNjLmNjCmluZGV4IGFjZTk1N2EuLjdlYTRmNWQgMTAwNjQ0 Ci0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS1jYy5j YworKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUtY2Mu Y2MKQEAgLTE3LDkgKzE3LDE4IEBACiAKIGNsYXNzIEEgewogIHB1YmxpYzoK KyAgaW50IG9wZXJhdG9yKyAoY29uc3QgaW50IGExKTsKKworIHB1YmxpYzoK ICAgaW50IGE7CiB9OwogCitpbnQKK0E6Om9wZXJhdG9yKyAoY29uc3QgaW50 IGExKQoreworICByZXR1cm4gYSArIGExOworfQorCiB1bmlvbiBVIHsKICAg aW50IGE7CiAgIGNoYXIgYzsKQEAgLTg4LDUgKzk3LDcgQEAgbWFpbiAoKQog ewogICBBIG9iajsKIAorICBvYmouYSA9IDU7CisKICAgcmV0dXJuIGZ1bmMg KG9iaik7CiB9CmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktdmFsdWUtY2MuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LXZhbHVlLWNjLmV4cAppbmRleCBlNjM1MWY2Li45NDlmMDRmIDEwMDY0 NAotLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUtY2Mu ZXhwCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS1j Yy5leHAKQEAgLTk5LDMgKzk5LDcgQEAgZ2RiX3Rlc3QgInB5dGhvbiBwcmlu dCB4dGRcW3hfZmllbGRzXFsxXF1cXVxbJ2EnXF0iICIxMDIiICJ4dGQtPmEg dmlhIGZpZWxkIgogZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBsZW4odXVfZmll bGRzKSIgIjIiICJudW1iZXIgb2YgZmllbGRzIGluIHV1IgogZ2RiX3Rlc3Qg InB5dGhvbiBwcmludCB1dVxbdXVfZmllbGRzXFswXF1cXVxbJ3gnXF0iICIx MDAwIiAidXUueCB2aWEgZmllbGQiCiBnZGJfdGVzdCAicHl0aG9uIHByaW50 IHV1XFt1dV9maWVsZHNcWzFcXVxdXFsnYSdcXSIgIjEwMDAiICJ1dS5hIHZp YSBmaWVsZCIKKworIyBUZXN0IG92ZXJsb2FkZWQgb3BlcmF0b3JzLgorZ2Ri X3Rlc3Rfbm9fb3V0cHV0ICJweXRob24gYSA9IGdkYi5wYXJzZV9hbmRfZXZh bCgnYScpIiAiaW5pdCBhIgorZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBhICsg NSIgIjEwIiAiYSArIDUiCg== --047d7b62207233c87004f2cb3ec0--