From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11651 invoked by alias); 19 Oct 2009 18:09:56 -0000 Received: (qmail 11642 invoked by uid 22791); 19 Oct 2009 18:09:56 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 19 Oct 2009 18:09:50 +0000 Received: from zps78.corp.google.com (zps78.corp.google.com [172.25.146.78]) by smtp-out.google.com with ESMTP id n9JI9mjn004217 for ; Mon, 19 Oct 2009 11:09:48 -0700 Received: from ywh8 (ywh8.prod.google.com [10.192.8.8]) by zps78.corp.google.com with ESMTP id n9JI9jDW013053 for ; Mon, 19 Oct 2009 11:09:45 -0700 Received: by ywh8 with SMTP id 8so4127731ywh.3 for ; Mon, 19 Oct 2009 11:09:45 -0700 (PDT) MIME-Version: 1.0 Received: by 10.100.235.1 with SMTP id i1mr3626204anh.40.1255975785043; Mon, 19 Oct 2009 11:09:45 -0700 (PDT) In-Reply-To: References: <20091002004954.8966C76B2B@ppluzhnikov.mtv.corp.google.com> <8ac60eac0910080916i5a2eb49an5f21f3b5c7fb96ef@mail.gmail.com> <20091008162350.GA8625@caradoc.them.org> <8ac60eac0910080952p46f15693x6ed339473db0139d@mail.gmail.com> <8ac60eac0910161607k55fee22cs379c5b7635d7b6a@mail.gmail.com> Date: Mon, 19 Oct 2009 18:09:00 -0000 Message-ID: <8ac60eac0910191109v62794c33g6712090912b5c11f@mail.gmail.com> Subject: Re: [RFC][patch] Allow to disassemble line. From: Paul Pluzhnikov To: tromey@redhat.com Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=001636b2b8ab83985b04764da600 X-System-Of-Record: true 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: 2009-10/txt/msg00436.txt.bz2 --001636b2b8ab83985b04764da600 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1318 On Mon, Oct 19, 2009 at 10:47 AM, Tom Tromey wrote: > Why not directly call ui_out_text in dump_insns? I am not sure how I arrived at the proposed patch ... Doing it the way you suggesed simplifies it a bit :-) I've also changed the "current PC marker" from "* " to "=> " (as Eli suggested), so the output looks like this: (top) disas Dump of assembler code for function gdb_main: 0x0000000000454c9e : push %rbp 0x0000000000454c9f : mov %rsp,%rbp 0x0000000000454ca2 : sub $0x10,%rsp 0x0000000000454ca6 : mov %rdi,-0x8(%rbp) => 0x0000000000454caa : mov -0x8(%rbp),%rax 0x0000000000454cae : mov 0x10(%rax),%eax 0x0000000000454cb1 : mov %eax,0x678475(%rip) # 0xacd12c This patch still lacks documentation and test case updates. I'll work up the complete patch if this one is OK. Thanks, -- Paul Pluzhnikov 2009-10-19 Paul Pluzhnikov * defs.h (pc_prefix): New prototype. * disasm.c (dump_insns): Mark current instruction. * printcmd.c (do_examine): Likewise. (pc_prefix, print_pc_prefix): New function. * stack.c (print_frame_info): Disassemble entire current line. --001636b2b8ab83985b04764da600 Content-Type: text/plain; charset=US-ASCII; name="gdb-disas-20091019.txt" Content-Disposition: attachment; filename="gdb-disas-20091019.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g0zjiyhp0 Content-length: 4340 SW5kZXg6IGRlZnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl OiAvY3ZzL3NyYy9zcmMvZ2RiL2RlZnMuaCx2CnJldHJpZXZpbmcgcmV2aXNp b24gMS4yNTYKZGlmZiAtdSAtcCAtdSAtcjEuMjU2IGRlZnMuaAotLS0gZGVm cy5oCTE5IE9jdCAyMDA5IDA5OjUxOjQwIC0wMDAwCTEuMjU2CisrKyBkZWZz LmgJMTkgT2N0IDIwMDkgMTg6MDg6MzcgLTAwMDAKQEAgLTYwOCw2ICs2MDgs NyBAQCBleHRlcm4gaW50IGJ1aWxkX2FkZHJlc3Nfc3ltYm9saWMgKENPUkVf CiAJCQkJICAgaW50ICp1bm1hcHBlZCk7CiAKIGV4dGVybiB2b2lkIHByaW50 X2FkZHJlc3MgKHN0cnVjdCBnZGJhcmNoICosIENPUkVfQUREUiwgc3RydWN0 IHVpX2ZpbGUgKik7CitleHRlcm4gY29uc3QgY2hhciAqcGNfcHJlZml4IChD T1JFX0FERFIpOwogCiAvKiBGcm9tIHNvdXJjZS5jICovCiAKSW5kZXg6IGRp c2FzbS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv c3JjL3NyYy9nZGIvZGlzYXNtLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu MzMKZGlmZiAtdSAtcCAtdSAtcjEuMzMgZGlzYXNtLmMKLS0tIGRpc2FzbS5j CTExIEp1bCAyMDA5IDE0OjA0OjIzIC0wMDAwCTEuMzMKKysrIGRpc2FzbS5j CTE5IE9jdCAyMDA5IDE4OjA4OjM3IC0wMDAwCkBAIC0xMTMsNiArMTEzLDcg QEAgZHVtcF9pbnNucyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cgog CSAgICBudW1fZGlzcGxheWVkKys7CiAJfQogICAgICAgdWlfb3V0X2NoYWlu ID0gbWFrZV9jbGVhbnVwX3VpX291dF90dXBsZV9iZWdpbl9lbmQgKHVpb3V0 LCBOVUxMKTsKKyAgICAgIHVpX291dF90ZXh0ICh1aW91dCwgcGNfcHJlZml4 IChwYykpOwogICAgICAgdWlfb3V0X2ZpZWxkX2NvcmVfYWRkciAodWlvdXQs ICJhZGRyZXNzIiwgZ2RiYXJjaCwgcGMpOwogCiAgICAgICBpZiAoIWJ1aWxk X2FkZHJlc3Nfc3ltYm9saWMgKHBjLCAwLCAmbmFtZSwgJm9mZnNldCwgJmZp bGVuYW1lLApJbmRleDogcHJpbnRjbWQuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3ByaW50Y21kLmMsdgpy ZXRyaWV2aW5nIHJldmlzaW9uIDEuMTY1CmRpZmYgLXUgLXAgLXUgLXIxLjE2 NSBwcmludGNtZC5jCi0tLSBwcmludGNtZC5jCTE5IE9jdCAyMDA5IDA5OjUx OjQxIC0wMDAwCTEuMTY1CisrKyBwcmludGNtZC5jCTE5IE9jdCAyMDA5IDE4 OjA4OjM3IC0wMDAwCkBAIC03MjUsNiArNzI1LDMyIEBAIHByaW50X2FkZHJl c3MgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogICBwcmludF9hZGRyZXNz X3N5bWJvbGljIChhZGRyLCBzdHJlYW0sIGFzbV9kZW1hbmdsZSwgIiAiKTsK IH0KIAorLyogUmV0dXJuIGEgcHJlZml4IGZvciBpbnN0cnVjdGlvbiBhZGRy ZXNzOgorICAgIj0+ICIgZm9yIGN1cnJlbnQgaW5zdHJ1Y3Rpb24sIGVsc2Ug IiAgICIuICAqLworCitjb25zdCBjaGFyICoKK3BjX3ByZWZpeCAoQ09SRV9B RERSIGFkZHIpCit7CisgIGlmIChoYXNfc3RhY2tfZnJhbWVzICgpKQorICAg IHsKKyAgICAgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZTsKKyAgICAgIENP UkVfQUREUiBwYzsKKworICAgICAgZnJhbWUgPSBnZXRfc2VsZWN0ZWRfZnJh bWUgKE5VTEwpOworICAgICAgcGMgPSBnZXRfZnJhbWVfcGMgKGZyYW1lKTsK KworICAgICAgaWYgKHBjID09IGFkZHIpCisJcmV0dXJuICI9PiAiOworICAg IH0KKyAgcmV0dXJuICIgICAiOworfQorCitzdGF0aWMgdm9pZAorcHJpbnRf cGNfcHJlZml4IChDT1JFX0FERFIgYWRkciwgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSkKK3sKKyAgZnB1dHNfZmlsdGVyZWQgKHBjX3ByZWZpeCAoYWRkciks IHN0cmVhbSk7Cit9CisKIC8qIFByaW50IGFkZHJlc3MgQUREUiBzeW1ib2xp Y2FsbHkgb24gU1RSRUFNLiAgUGFyYW1ldGVyIERFTUFOR0xFCiAgICBjb250 cm9scyB3aGV0aGVyIHRvIHByaW50IHRoZSBzeW1ib2xpYyBuYW1lICJyYXci IG9yIGRlbWFuZ2xlZC4KICAgIEdsb2JhbCBzZXR0aW5nICJhZGRyZXNzcHJp bnQiIGNvbnRyb2xzIHdoZXRoZXIgdG8gcHJpbnQgaGV4IGFkZHJlc3MKQEAg LTgxNyw2ICs4NDMsOCBAQCBkb19leGFtaW5lIChzdHJ1Y3QgZm9ybWF0X2Rh dGEgZm10LCBzdHJ1CiAgIHdoaWxlIChjb3VudCA+IDApCiAgICAgewogICAg ICAgUVVJVDsKKyAgICAgIGlmIChmb3JtYXQgPT0gJ2knKQorCXByaW50X3Bj X3ByZWZpeCAobmV4dF9hZGRyZXNzLCBnZGJfc3Rkb3V0KTsKICAgICAgIHBy aW50X2FkZHJlc3MgKG5leHRfZ2RiYXJjaCwgbmV4dF9hZGRyZXNzLCBnZGJf c3Rkb3V0KTsKICAgICAgIHByaW50Zl9maWx0ZXJlZCAoIjoiKTsKICAgICAg IGZvciAoaSA9IG1heGVsdHM7CkluZGV4OiBzdGFjay5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvc3RhY2su Yyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMDgKZGlmZiAtdSAtcCAtdSAt cjEuMjA4IHN0YWNrLmMKLS0tIHN0YWNrLmMJMTkgT2N0IDIwMDkgMDk6NTE6 NDIgLTAwMDAJMS4yMDgKKysrIHN0YWNrLmMJMTkgT2N0IDIwMDkgMTg6MDg6 MzcgLTAwMDAKQEAgLTY0Myw4ICs2NDMsNyBAQCBwcmludF9mcmFtZV9pbmZv IChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhCiAgICAgICAvKiBJZiBkaXNhc3Nl bWJsZS1uZXh0LWxpbmUgaXMgc2V0IHRvIG9uIGFuZCB0aGVyZSBpcyBsaW5l IGRlYnVnCiAgICAgICAgICBtZXNzYWdlcywgb3V0cHV0IGFzc2VtYmx5IGNv ZGVzIGZvciBuZXh0IGxpbmUuICAqLwogICAgICAgaWYgKGRpc2Fzc2VtYmxl X25leHRfbGluZSA9PSBBVVRPX0JPT0xFQU5fVFJVRSkKLQlkb19nZGJfZGlz YXNzZW1ibHkgKGdldF9mcmFtZV9hcmNoIChmcmFtZSksIC0xLAotCQkJICAg IGdldF9mcmFtZV9wYyAoZnJhbWUpLCBzYWwuZW5kKTsKKwlkb19nZGJfZGlz YXNzZW1ibHkgKGdldF9mcmFtZV9hcmNoIChmcmFtZSksIC0xLCBzYWwucGMs IHNhbC5lbmQpOwogICAgIH0KIAogICBpZiAocHJpbnRfd2hhdCAhPSBMT0NB VElPTikK --001636b2b8ab83985b04764da600--