From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28070 invoked by alias); 12 Feb 2013 14:56:59 -0000 Received: (qmail 28060 invoked by uid 22791); 12 Feb 2013 14:56:58 -0000 X-SWARE-Spam-Status: No, hits=-5.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,RP_MATCHES_RCVD,TW_HP X-Spam-Check-By: sourceware.org Received: from mail-ee0-f41.google.com (HELO mail-ee0-f41.google.com) (74.125.83.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 12 Feb 2013 14:56:53 +0000 Received: by mail-ee0-f41.google.com with SMTP id c13so85370eek.14 for ; Tue, 12 Feb 2013 06:56:52 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:x-gm-message-state; bh=yQq1wdKcgb5JeGhI/W3d6bBbMId21ZVwfiie8jLGGu8=; b=VfsXk4WFRDWMVwxqPkJdt7eGKm/eWVKu9hWHrj1Va1Y8FmFb5QF53QeXYZVBz4qVI1 kommcG05ugwOSidc7t9F7v62MFVI3R1W8EkjCC5+3qNqoHDFKvDx/ldS5QWs8sjrxKQk 4N6RXlV+7gaA6DrYwSRBi2ZGGXZYnmJFobGZUAZwibtWGFvqma+CXMdNsoPlWKupi1BM GMJzVGte/BtYklZWbhu2Lcn5MHZZqqxpPZjmQEs9GjrKEYxMQlU+StfRURp28U77F3aR cycwglEYel26to5KUf+Tb4QS8O4OnFptuu4WCHdEzYeBl32/4eokTGL1X0Yii553Ond1 rBgQ== MIME-Version: 1.0 X-Received: by 10.14.176.66 with SMTP id a42mr63632218eem.34.1360681011951; Tue, 12 Feb 2013 06:56:51 -0800 (PST) Received: by 10.14.207.195 with HTTP; Tue, 12 Feb 2013 06:56:51 -0800 (PST) In-Reply-To: References: <20753.38272.55066.651097@ruffy2.mtv.corp.google.com> Date: Tue, 12 Feb 2013 14:56:00 -0000 Message-ID: Subject: Re: [RFC - Python Scripting] New method gdb.Architecture.disassemble From: Siva Chandra To: Doug Evans Cc: gdb-patches Content-Type: multipart/mixed; boundary=047d7b6222d05eb9b004d5883c0a X-Gm-Message-State: ALoCoQnW+kiHhrMF8V+o8nhw9sdTFMPsbwnrU1elC1EQT7o8F3YVQEvFUUyEKE7sLKv1zDEmgz6ORboR4JaHH7xpzyYW0fR1mIg9ogUqOSOEhMsJPbJQ5Hu7JuzBELHb7iNYZLU3GqXhBLm9Ug3AqlugzI2HkKr8/nZ1k3Odf0bSC3Bt9JidX3hcoZf+RPVCul3yAaC8WP6tI8htg6DLSWgPUELUbTysjw== 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: 2013-02/txt/msg00270.txt.bz2 --047d7b6222d05eb9b004d5883c0a Content-Type: text/plain; charset=ISO-8859-1 Content-length: 995 On Fri, Feb 8, 2013 at 10:05 AM, Doug Evans wrote: > On Tue, Feb 5, 2013 at 5:53 PM, Siva Chandra wrote: >> The only useful entry point currently available is gdb_disassembly and >> I do not think it is a bad entry point. Other disassembly functions in >> disasm.c are static. > > Well, it begs the question what entrypoint into libopcodes does > gdb_disassembly use? :-) > Anyways, my point is gdb_disassembly is a bit high level for the > Python API for me. Thanks for your detailed reply. I now have a patch which does not use ui_out. Instead of calling gdb_disassembly, it essentially re-implements disasm.c:dump_insns. The patch is attached. 2013-02-12 Siva Chandra Reddy Add a new method 'disassemble' to gdb.Architecture class. * python/py-arch.c (archpy_disassmble): Implementation of the new method gdb.Architecture.disassemble. (arch_object_methods): Add entry for the new method. --047d7b6222d05eb9b004d5883c0a Content-Type: text/plain; charset=US-ASCII; name="arch_disassemble_patch_v3.txt" Content-Disposition: attachment; filename="arch_disassemble_patch_v3.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hd369blw0 Content-length: 8138 ZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktYXJjaC5jIGIvZ2RiL3B5dGhv bi9weS1hcmNoLmMKaW5kZXggZWRkNTA4Zi4uZGQ1MGQ3OCAxMDA2NDQKLS0t IGEvZ2RiL3B5dGhvbi9weS1hcmNoLmMKKysrIGIvZ2RiL3B5dGhvbi9weS1h cmNoLmMKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlICJkZWZzLmgiCiAj aW5jbHVkZSAiZ2RiYXJjaC5oIgogI2luY2x1ZGUgImFyY2gtdXRpbHMuaCIK KyNpbmNsdWRlICJkaXNhc20uaCIKICNpbmNsdWRlICJweXRob24taW50ZXJu YWwuaCIKIAogdHlwZWRlZiBzdHJ1Y3QgYXJjaF9vYmplY3RfdHlwZV9vYmpl Y3QgewpAQCAtODYsNiArODcsMTM3IEBAIGFyY2hweV9uYW1lIChQeU9iamVj dCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiAgIHJldHVybiBweV9uYW1lOwog fQogCisvKiBJbXBsZW1lbnRhdGlvbiBvZiBnZGIuQXJjaGl0ZWN0dXJlLmRp c2Fzc2VtYmxlIChzZWxmLCBsb3csIGhpZ2gpIC0+IExpc3QuCisgICBSZXR1 cm5zIGEgbGlzdCBvZiBpbnN0cnVjdGlvbnMgaW4gYSBtZW1vcnkgYWRkcmVz cyByYW5nZS4gIEVhY2ggaW5zdHJ1Y3Rpb24KKyAgIGluIHRoZSBsaXN0IGlz IGEgZGljdCBvYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIHN0cmluZyBrZXlz OgorCisgICBLRVkgICAgICAgICBWQUxVRSBUWVBFICAgICAgREVTQ1JJUFRJ T04KKyAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAn YWRkcicgICAgICBsb25nIGludGVnZXIgICAgVGhlIGFkZHJlc3Mgb2YgdGhl IGluc3RydWN0aW9uIGluIHRhcmdldCBtZW1vcnkuCisgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgJ2FzbScgICAgICAgc3RyaW5n ICAgICAgICAgIFRoZSBpbnN0cnVjdGlvbiBkZXBpY3RlZCBpbiBpdHMgYXNz ZW1ibHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFn ZS4gV2lsbCBiZSBzZXQgdG8gJ3Vua25vd24nIGlmIEdEQiBpcworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuYWJsZSB0byBvYnRhaW4gdGhp cyB2YWx1ZS4KKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAnZnVuYycgICAgICBzdHJpbmcgICAgICAgICAgTmFtZSBvZiB0aGUg ZnVuY3Rpb24gdG8gd2hpY2ggdGhlIGluc3RydWN0aW9uCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYmVsb25ncyB0by4gV2lsbCBiZSBzZXQg dG8gJzx1bmtub3duPicgaWYgR0RCIGlzCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5hYmxlIHRvIG9idGFpbiB0aGlzIHZhbHVlLgorICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICdsZW5ndGgn ICAgIGludGVnZXIgICAgICAgICBMZW5ndGggb2YgdGhlIGluc3RydWN0aW9u IGluIGJ5dGVzLgorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgICdvZmZzZXQnICAgIGludGVnZXIgICAgICAgICBUaGUgYnl0ZSBv ZmZzZXQgb2YgdGhlIGluc3RydWN0aW9uIGluIHRoZSBmdW5jCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYWJvdmUuIFdpbGwgYmUgc2V0IHRv IC0xIGlmIEdEQiBpcyB1bmFibGUgdG8KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvYnRhaW4gdGhpcyB2YWx1ZS4KKyovCisKK3N0YXRpYyBQ eU9iamVjdCAqCithcmNocHlfZGlzYXNzZW1ibGUgKFB5T2JqZWN0ICpzZWxm LCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3KQoreworICBzdGF0aWMg Y2hhciAqa2V5d29yZHNbXSA9IHsgImxvdyIsICJoaWdoIiwgTlVMTCB9Owor ICBDT1JFX0FERFIgbG93LCBoaWdoOworICBDT1JFX0FERFIgcGM7CisgIFB5 T2JqZWN0ICpyZXN1bHRfbGlzdDsKKyAgc3RhdGljIGNoYXIgdW5rbm93bl9z dHJbXSA9IHsgJzwnLCAndScsICduJywgJ2snLCAnbicsICdvJywgJ3cnLCAn bicsICc+JywgJ1wwJyB9OworICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9 IGFyY2hfb2JqZWN0X3RvX2dkYmFyY2ggKHNlbGYpOworCisgIGlmICghUHlB cmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzIChhcmdzLCBrdywgR0RCX1BZX0xM VV9BUkcgR0RCX1BZX0xMVV9BUkcsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBrZXl3b3JkcywgJmxvdywgJmhpZ2gpKQorICAgIHJl dHVybiBOVUxMOworCisgIHJlc3VsdF9saXN0ID0gUHlMaXN0X05ldyAoMCk7 CisgIGlmICghcmVzdWx0X2xpc3QpCisgICAgeworICAgICAgUHlFcnJfU2V0 U3RyaW5nIChQeUV4Y19NZW1vcnlFcnJvciwKKyAgICAgICAgICAgICAgICAg ICAgICAgXygiVW5hYmxlIHRvIGNyZWF0ZSBhIGxpc3Qgb2YgZGlzYXNzZW1i bGVkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiaW5zdHJ1Y3Rpb25z LiIpKTsKKyAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICBmb3IgKHBj ID0gbG93OyBwYyA8PSBoaWdoOykKKyAgICB7CisgICAgICBpbnQgbGluZSA9 IC0xLCB1bm1hcHBlZCwgb2Zmc2V0ID0gLTEsIGluc25fbGVuID0gMDsKKyAg ICAgIGNoYXIgKmZpbGVuYW1lID0gTlVMTCwgKmZ1bmNuYW1lID0gTlVMTCwg KmFzbV9jb2RlID0gTlVMTDsKKyAgICAgIHN0cnVjdCB1aV9maWxlICptZW1m aWxlID0gbWVtX2ZpbGVvcGVuICgpOworICAgICAgUHlPYmplY3QgKmluc25f ZGljdCA9IFB5RGljdF9OZXcgKCk7CisgICAgICB2b2xhdGlsZSBzdHJ1Y3Qg Z2RiX2V4Y2VwdGlvbiBleGNlcHQ7CisKKyAgICAgIGlmICghaW5zbl9kaWN0 KQorICAgICAgICB7CisgICAgICAgICAgUHlfREVDUkVGIChyZXN1bHRfbGlz dCk7CisgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nIChQeUV4Y19NZW1vcnlF cnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlVuYWJsZSB0 byBjcmVhdGUgYSBkaWN0IGZvciBpbnN0cnVjdGlvbi4iKSk7CisKKyAgICAg ICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgaWYgKFB5TGlz dF9BcHBlbmQgKHJlc3VsdF9saXN0LCBpbnNuX2RpY3QpKQorICAgICAgICB7 CisgICAgICAgICAgUHlfREVDUkVGIChyZXN1bHRfbGlzdCk7CisgICAgICAg ICAgUHlfREVDUkVGIChpbnNuX2RpY3QpOworCisgICAgICAgICAgcmV0dXJu IE5VTEw7ICAvKiBQeUxpc3RfQXBwZW5kIFNldHMgdGhlIGV4Y2VwdGlvbi4g ICovCisgICAgICAgIH0KKworICAgICAgVFJZX0NBVENIIChleGNlcHQsIFJF VFVSTl9NQVNLX0FMTCkKKyAgICAgICAgeworICAgICAgICAgIGluc25fbGVu ID0gZ2RiX3ByaW50X2luc24gKGdkYmFyY2gsIHBjLCBtZW1maWxlLCBOVUxM KTsKKyAgICAgICAgICAvKiBFdmVuIHRob3VnaCBmaWxlbmFtZSwgbGluZSBh bmQgdW5tYXBwZWQgYXJlIHBhc3NlZCBhcyBhcmd1bWVudHMsCisgICAgICAg ICAgICAgdGhleSBkbyBub3QgZ2l2ZSB1cyBhbnkgbWVhbmluZ2Z1bCB2YWx1 ZXMgY3VycmVudGx5LiAgKi8KKyAgICAgICAgICBidWlsZF9hZGRyZXNzX3N5 bWJvbGljIChnZGJhcmNoLCBwYywgMCwgJmZ1bmNuYW1lLCAmb2Zmc2V0LCAm ZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JmxpbmUsICZ1bm1hcHBlZCk7CisgICAgICAgIH0KKyAgICAgIGlmIChleGNl cHQucmVhc29uIDwgMCkKKyAgICAgICAgeworICAgICAgICAgIFB5X0RFQ1JF RiAocmVzdWx0X2xpc3QpOworICAgICAgICAgIHVpX2ZpbGVfZGVsZXRlICht ZW1maWxlKTsKKyAgICAgICAgICBpZiAoZnVuY25hbWUpCisgICAgICAgICAg ICB4ZnJlZSAoZnVuY25hbWUpOworICAgICAgICAgIGlmIChmaWxlbmFtZSkK KyAgICAgICAgICAgIHhmcmVlIChmaWxlbmFtZSk7CisgICAgICAgICAgaWYg KGFzbV9jb2RlKQorICAgICAgICAgICAgeGZyZWUgKGFzbV9jb2RlKTsKKwor ICAgICAgICAgIHJldHVybiBnZGJweV9jb252ZXJ0X2V4Y2VwdGlvbiAoZXhj ZXB0KTsKKyAgICAgICAgfQorCisgICAgICBhc21fY29kZSA9IHVpX2ZpbGVf eHN0cmR1cCAobWVtZmlsZSwgTlVMTCk7CisgICAgICBpZiAoIWFzbV9jb2Rl KQorICAgICAgICBhc21fY29kZSA9IHVua25vd25fc3RyOworICAgICAgaWYg KCFmdW5jbmFtZSkKKyAgICAgICAgZnVuY25hbWUgPSB1bmtub3duX3N0cjsK KyAgICAgIGlmICghZmlsZW5hbWUpCisgICAgICAgIGZpbGVuYW1lID0gdW5r bm93bl9zdHI7CisKKyAgICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyAo aW5zbl9kaWN0LCAiYWRkciIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdkYl9weV9sb25nX2Zyb21fdWxvbmdlc3QgKHBjKSkKKyAgICAg ICAgICB8fCBQeURpY3RfU2V0SXRlbVN0cmluZyAoaW5zbl9kaWN0LCAiYXNt IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlTdHJp bmdfRnJvbVN0cmluZyAoYXNtX2NvZGUpKQorICAgICAgICAgIHx8IFB5RGlj dF9TZXRJdGVtU3RyaW5nIChpbnNuX2RpY3QsICJmdW5jIiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlTdHJpbmdfRnJvbVN0cmlu ZyAoZnVuY25hbWUpKQorICAgICAgICAgIHx8IFB5RGljdF9TZXRJdGVtU3Ry aW5nIChpbnNuX2RpY3QsICJsZW5ndGgiLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQeUludF9Gcm9tTG9uZyAoaW5zbl9sZW4pKQor ICAgICAgICAgIHx8IFB5RGljdF9TZXRJdGVtU3RyaW5nIChpbnNuX2RpY3Qs ICJvZmZzZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQeUludF9Gcm9tTG9uZyAob2Zmc2V0KSkpCisgICAgICAgIHsKKyAgICAg ICAgICBQeV9ERUNSRUYgKHJlc3VsdF9saXN0KTsKKyAgICAgICAgICBQeUVy cl9TZXRTdHJpbmcgKFB5RXhjX01lbW9yeUVycm9yLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgXygiVW5hYmxlIHRvIGFkZCBmaWVsZHMgdG8gaW5z dHJ1Y3Rpb24gZGljdC4iKSk7CisKKyAgICAgICAgICByZXR1cm4gTlVMTDsK KyAgICAgICAgfQorCisgICAgICBwYyArPSBpbnNuX2xlbjsKKyAgICAgIHVp X2ZpbGVfZGVsZXRlIChtZW1maWxlKTsKKyAgICAgIGlmIChmdW5jbmFtZSAm JiBmdW5jbmFtZSAhPSB1bmtub3duX3N0cikKKyAgICAgICAgeGZyZWUgKGZ1 bmNuYW1lKTsKKyAgICAgIGlmIChmaWxlbmFtZSAmJiBmaWxlbmFtZSAhPSB1 bmtub3duX3N0cikKKyAgICAgICAgeGZyZWUgKGZpbGVuYW1lKTsKKyAgICAg IGlmIChhc21fY29kZSAmJiBhc21fY29kZSAhPSB1bmtub3duX3N0cikKKyAg ICAgICAgeGZyZWUgKGFzbV9jb2RlKTsKKyAgICB9CisKKyAgcmV0dXJuIHJl c3VsdF9saXN0OworfQorCiAvKiBJbml0aWFsaXplcyB0aGUgQXJjaGl0ZWN0 dXJlIGNsYXNzIGluIHRoZSBnZGIgbW9kdWxlLiAgKi8KIAogdm9pZApAQCAt MTA1LDYgKzIzNywxMCBAQCBzdGF0aWMgUHlNZXRob2REZWYgYXJjaF9vYmpl Y3RfbWV0aG9kcyBbXSA9IHsKICAgeyAibmFtZSIsIGFyY2hweV9uYW1lLCBN RVRIX05PQVJHUywKICAgICAibmFtZSAoKSAtPiBTdHJpbmcuXG5cCiBSZXR1 cm4gdGhlIG5hbWUgb2YgdGhlIGFyY2hpdGVjdHVyZSBhcyBhIHN0cmluZyB2 YWx1ZS4iIH0sCisgIHsgImRpc2Fzc2VtYmxlIiwgKFB5Q0Z1bmN0aW9uKSBh cmNocHlfZGlzYXNzZW1ibGUsCisgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9L RVlXT1JEUywKKyAgICAiZGlzYXNzZW1ibGUgKGxvdywgaGlnaCkgLT4gTGlz dC5cblwKK1JldHVybiB0aGUgbGlzdCBvZiBkaXNhc3NlbWJsZWQgaW5zdHJ1 Y3Rpb25zIGZyb20gTE9XIHRvIEhJR0guIiB9LAogICB7TlVMTH0gIC8qIFNl bnRpbmVsICovCiB9OwogCg== --047d7b6222d05eb9b004d5883c0a--