From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20961 invoked by alias); 12 Mar 2009 23:56:12 -0000 Received: (qmail 20952 invoked by uid 22791); 12 Mar 2009 23:56:11 -0000 X-SWARE-Spam-Status: No, hits=-0.7 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_34,J_CHICKENPOX_43,J_CHICKENPOX_44,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from ti-out-0910.google.com (HELO ti-out-0910.google.com) (209.85.142.190) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 12 Mar 2009 23:56:05 +0000 Received: by ti-out-0910.google.com with SMTP id y8so1226658tia.12 for ; Thu, 12 Mar 2009 16:56:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.110.8.5 with SMTP id 5mr916919tih.45.1236902159927; Thu, 12 Mar 2009 16:55:59 -0700 (PDT) In-Reply-To: References: Date: Thu, 12 Mar 2009 23:57:00 -0000 Message-ID: Subject: Re: [RFC] disassemble-next-line From: teawater To: Tom Tromey , Eli Zaretskii , Doug Evans Cc: Pedro Alves , Daniel Jacobowitz , "gdb-patches@sourceware.org" Content-Type: multipart/mixed; boundary=001485f0e778dd48aa0464f4b9ba 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-03/txt/msg00179.txt.bz2 --001485f0e778dd48aa0464f4b9ba Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 3718 Hi guys, I make a new patch according to your comments. If you think it's OK. I will make the patch for doc. Thanks, Hui On Wed, Mar 11, 2009 at 11:16, teawater wrote: > Hi guys, > > On Mon, Mar 9, 2009 at 23:26, Tom Tromey wrote: >>>>>>> "teawater" =3D=3D teawater =A0 writes: >> >> teawater> This is the patch for the function to output assembly codes >> teawater> for next line. >> >> teawater> +/* If ON, GDB will output the assembly codes of next line. >> teawater> + =A0 If OFF, GDB will not do it. >> teawater> + =A0 doesn't support it, GDB will instead use the traditional >> >> I think this third line should be removed. > > OK. I will remove it. > >> >> teawater> +/* Show assembly codes; stub for catch_errors. =A0*/ >> teawater> + >> teawater> +struct gdb_disassembly_stub_args >> teawater> +{ >> teawater> + =A0int how_many; >> teawater> + =A0CORE_ADDR low; >> teawater> + =A0CORE_ADDR high; >> teawater> +}; >> teawater> + >> teawater> +static int >> teawater> +gdb_disassembly_stub (void *args) >> teawater> +{ >> teawater> + =A0struct gdb_disassembly_stub_args *p =3D args; >> teawater> + =A0gdb_disassembly (uiout, 0, 0, 0, p->how_many, p->low, p->= high); >> teawater> + =A0return 0; >> >> IMO, in this case it would be shorter, and clearer, to use TRY_CATCH >> at the call site rather than catch_errors. =A0What do you think? > > OK. =A0I will change it to TRY_CATCH. > >> >> teawater> + =A0/* If disassemble-next-line is set to auto or on and does= n't have >> teawater> + =A0 =A0 line message, output current instructions. =A0*/ >> >> "a line message" >> >> teawater> + =A0 =A0 =A0/* If disassemble-next-line is set to on and ther= e is line >> teawater> + =A0 =A0 =A0 =A0 messages, output assembly codes for next lin= e. =A0*/ >> >> "there are line messages" > > I will change it. > >> >> teawater> + =A0add_setshow_enum_cmd ("disassemble-next-line", class_run, >> teawater> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 disassemble_next_lin= e_enum, >> teawater> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 &disassemble_next_li= ne, _("\ >> teawater> +Set debugger's willingness to use disassemble-next-line."), _= ("\ >> >> This text seems circular. >> Instead it should briefly describe what the option does. >> >> teawater> +Show debugger's willingness to use disassemble-next-line."), = _("\ >> teawater> +If on, gdb will output the assembly codes of next line.\n\ >> >> This also reads strangely, but I don't have a suggestion for what it >> ought to say. =A0I think it should at least say when the assembly will >> be displayed. =A0"assembly codes" in particular sounds odd to me. > > I think Doug's idea is better: > If ON, GDB will disassemble the next source line when execution stops. > If the next source line cannot be ascertained, the next instruction > will be disassembled instead. > >> >> teawater> +If auto (which is the default), gdb will output a assembly co= de\n\ >> teawater> +at current address if there is not line message."), >> >> "at the current address" > > I will change it. > >> >> The line message bit could use rewording as well; at least s/not/no/. >> > > About line message. > struct symtab_and_line > { > =A0struct symtab *symtab; > =A0struct obj_section *section; > =A0/* Line number. =A0Line numbers start at 1 and proceed through symtab-= >nlines. > =A0 =A0 0 is never a valid line number; it is used to indicate that line = number > =A0 =A0 information is not available. =A0*/ > =A0int line; > > =A0CORE_ADDR pc; > =A0CORE_ADDR end; > =A0int explicit_pc; > =A0int explicit_line; > }; > It don't have comment name. > What about change it to "line debug message"? > > > Thanks for your help. > Hui > --001485f0e778dd48aa0464f4b9ba Content-Type: text/plain; charset=US-ASCII; name="disassemble-next-line.txt" Content-Disposition: attachment; filename="disassemble-next-line.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fs83lcwm0 Content-length: 5596 LS0tCiBzdGFjay5jIHwgICA4OSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZp bGUgY2hhbmdlZCwgODkgaW5zZXJ0aW9ucygrKQoKLS0tIGEvc3RhY2suYwor KysgYi9zdGFjay5jCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAidmFs cHJpbnQuaCIKICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKICNpbmNsdWRlICJj cC1zdXBwb3J0LmgiCisjaW5jbHVkZSAiZGlzYXNtLmgiCiAKICNpbmNsdWRl ICJnZGJfYXNzZXJ0LmgiCiAjaW5jbHVkZSA8Y3R5cGUuaD4KQEAgLTQ1Niw2 ICs0NTcsNjkgQEAgc2V0X2N1cnJlbnRfc2FsX2Zyb21fZnJhbWUgKHN0cnVj dCBmcmFtZQogICAgIH0KIH0KIAorLyogRW51bSBzdHJpbmdzIGZvciAic2V0 fHNob3cgZGlzYXNzZW1ibGUtbmV4dC1saW5lIi4gICovCisKK3N0YXRpYyBj b25zdCBjaGFyIGRpc2Fzc2VtYmxlX25leHRfbGluZV9hdXRvW10gPSAiYXV0 byI7CitzdGF0aWMgY29uc3QgY2hhciBkaXNhc3NlbWJsZV9uZXh0X2xpbmVf b25bXSA9ICJvbiI7CitzdGF0aWMgY29uc3QgY2hhciBkaXNhc3NlbWJsZV9u ZXh0X2xpbmVfb2ZmW10gPSAib2ZmIjsKK3N0YXRpYyBjb25zdCBjaGFyICpk aXNhc3NlbWJsZV9uZXh0X2xpbmVfZW51bVtdID0KK3sKKyAgZGlzYXNzZW1i bGVfbmV4dF9saW5lX2F1dG8sCisgIGRpc2Fzc2VtYmxlX25leHRfbGluZV9v biwKKyAgZGlzYXNzZW1ibGVfbmV4dF9saW5lX29mZiwKKyAgTlVMTCwKK307 CisKKy8qIElmIE9OLCBHREIgd2lsbCBkaXNhc3NlbWJsZSB0aGUgbmV4dCBz b3VyY2UgbGluZSB3aGVuIGV4ZWN1dGlvbgorICAgc3RvcHMuCisgICBJZiBB VVRPICh3aGljaCBpcyB0aGUgZGVmYXVsdCkgb3IgdGhlIG5leHQgc291cmNl IGxpbmUgY2Fubm90IGJlCisgICBhc2NlcnRhaW5lZCwgdGhlIG5leHQgaW5z dHJ1Y3Rpb24gd2lsbCBiZSBkaXNhc3NlbWJsZWQgaW5zdGVhZC4gICovCisK K3N0YXRpYyBjb25zdCBjaGFyICpkaXNhc3NlbWJsZV9uZXh0X2xpbmUgPSBk aXNhc3NlbWJsZV9uZXh0X2xpbmVfYXV0bzsKKworc3RhdGljIHZvaWQKK3No b3dfZGlzYXNzZW1ibGVfbmV4dF9saW5lIChzdHJ1Y3QgdWlfZmlsZSAqZmls ZSwgaW50IGZyb21fdHR5LAorCQkJCSBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVu dCAqYywKKwkJCQkgY29uc3QgY2hhciAqdmFsdWUpCit7CisgIGZwcmludGZf ZmlsdGVyZWQgKGZpbGUsIF8oIlwKK0RlYnVnZ2VyJ3Mgd2lsbGluZ25lc3Mg dG8gdXNlIGRpc2Fzc2VtYmxlLW5leHQtbGluZSBpcyAlcy5cbiIpLCB2YWx1 ZSk7Cit9CisKKy8qIFNob3cgYXNzZW1ibHkgY29kZXM7IHN0dWIgZm9yIGNh dGNoX2Vycm9ycy4gICovCisKK3N0cnVjdCBnZGJfZGlzYXNzZW1ibHlfc3R1 Yl9hcmdzCit7CisgIGludCBob3dfbWFueTsKKyAgQ09SRV9BRERSIGxvdzsK KyAgQ09SRV9BRERSIGhpZ2g7Cit9OworCitzdGF0aWMgdm9pZAorZ2RiX2Rp c2Fzc2VtYmx5X3N0dWIgKHZvaWQgKmFyZ3MpCit7CisgIHN0cnVjdCBnZGJf ZGlzYXNzZW1ibHlfc3R1Yl9hcmdzICpwID0gYXJnczsKKyAgZ2RiX2Rpc2Fz c2VtYmx5ICh1aW91dCwgMCwgMCwgcC0+aG93X21hbnksIHAtPmxvdywgcC0+ aGlnaCk7Cit9CisKKy8qIFVzZSBUUllfQ0FUQ0ggdG8gY2F0Y2ggdGhlIGV4 Y2VwdGlvbiBmcm9tIHRoZSBnZGJfZGlzYXNzZW1ibHkKKyAgIGJlY2F1c2Ug aXQgd2lsbCBiZSBicm9rZW4gYnkgZmlsdGVyIHNvbWV0aW1lLiAgKi8KKwor c3RhdGljIHZvaWQKK2RvX2dkYl9kaXNhc3NlbWJseSAoaW50IGhvd19tYW55 LCBDT1JFX0FERFIgbG93LCBDT1JFX0FERFIgaGlnaCkKK3sKKyAgdm9sYXRp bGUgc3RydWN0IGdkYl9leGNlcHRpb24gZXhjZXB0aW9uOworICBzdHJ1Y3Qg Z2RiX2Rpc2Fzc2VtYmx5X3N0dWJfYXJncyBhcmdzOworCisgIGFyZ3MuaG93 X21hbnkgPSBob3dfbWFueTsKKyAgYXJncy5sb3cgPSBsb3c7CisgIGFyZ3Mu aGlnaCA9IGhpZ2g7CisgIFRSWV9DQVRDSCAoZXhjZXB0aW9uLCBSRVRVUk5f TUFTS19BTEwpCisgICAgeworICAgICAgZ2RiX2Rpc2Fzc2VtYmx5X3N0dWIg KCZhcmdzKTsKKyAgICB9Cit9CisKIC8qIFByaW50IGluZm9ybWF0aW9uIGFi b3V0IGZyYW1lIEZSQU1FLiAgVGhlIG91dHB1dCBpcyBmb3JtYXQgYWNjb3Jk aW5nCiAgICB0byBQUklOVF9MRVZFTCBhbmQgUFJJTlRfV0hBVCBhbmQgUFJJ TlQgQVJHUy4gIFRoZSBtZWFuaW5nIG9mCiAgICBQUklOVF9XSEFUIGlzOgpA QCAtNTMzLDYgKzU5NywxMyBAQCBwcmludF9mcmFtZV9pbmZvIChzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhCiAKICAgc291cmNlX3ByaW50ID0gKHByaW50X3do YXQgPT0gU1JDX0xJTkUgfHwgcHJpbnRfd2hhdCA9PSBTUkNfQU5EX0xPQyk7 CiAKKyAgLyogSWYgZGlzYXNzZW1ibGUtbmV4dC1saW5lIGlzIHNldCB0byBh dXRvIG9yIG9uIGFuZCBkb2Vzbid0IGhhdmUKKyAgICAgdGhlIGxpbmUgZGVi dWcgbWVzc2FnZXMgZm9yICRwYywgb3V0cHV0IGN1cnJlbnQgaW5zdHJ1Y3Rp b25zLiAgKi8KKyAgaWYgKChkaXNhc3NlbWJsZV9uZXh0X2xpbmUgPT0gZGlz YXNzZW1ibGVfbmV4dF9saW5lX2F1dG8KKyAgICAgICB8fCBkaXNhc3NlbWJs ZV9uZXh0X2xpbmUgPT0gZGlzYXNzZW1ibGVfbmV4dF9saW5lX29uKQorICAg ICAgJiYgc291cmNlX3ByaW50ICYmICFzYWwuc3ltdGFiKQorICAgIGRvX2dk Yl9kaXNhc3NlbWJseSAoMSwgZ2V0X2ZyYW1lX3BjIChmcmFtZSksIGdldF9m cmFtZV9wYyAoZnJhbWUpICsgMSk7CisKICAgaWYgKHNvdXJjZV9wcmludCAm JiBzYWwuc3ltdGFiKQogICAgIHsKICAgICAgIGludCBkb25lID0gMDsKQEAg LTU2OSw2ICs2NDAsMTEgQEAgcHJpbnRfZnJhbWVfaW5mbyAoc3RydWN0IGZy YW1lX2luZm8gKmZyYQogCSAgICAgIHByaW50X3NvdXJjZV9saW5lcyAoc2Fs LnN5bXRhYiwgc2FsLmxpbmUsIHNhbC5saW5lICsgMSwgMCk7CiAJICAgIH0K IAl9CisKKyAgICAgIC8qIElmIGRpc2Fzc2VtYmxlLW5leHQtbGluZSBpcyBz ZXQgdG8gb24gYW5kIHRoZXJlIGlzIGxpbmUKKyAgICAgICAgIG1lc3NhZ2Vz LCBvdXRwdXQgYXNzZW1ibHkgY29kZXMgZm9yIG5leHQgbGluZS4gICovCisg ICAgICBpZiAoZGlzYXNzZW1ibGVfbmV4dF9saW5lID09IGRpc2Fzc2VtYmxl X25leHRfbGluZV9vbikKKwlkb19nZGJfZGlzYXNzZW1ibHkgKC0xLCBnZXRf ZnJhbWVfcGMgKGZyYW1lKSwgc2FsLmVuZCk7CiAgICAgfQogCiAgIGlmIChw cmludF93aGF0ICE9IExPQ0FUSU9OKQpAQCAtMjA2Miw2ICsyMTM4LDE5IEBA IFVzYWdlOiBmdW5jIDxuYW1lPlxuIikpOwogCQkJXygiU2hvdyBwcmludGlu ZyBvZiBub24tc2NhbGFyIGZyYW1lIGFyZ3VtZW50cyIpLAogCQkJTlVMTCwg TlVMTCwgTlVMTCwgJnNldHByaW50bGlzdCwgJnNob3dwcmludGxpc3QpOwog CisgIGFkZF9zZXRzaG93X2VudW1fY21kICgiZGlzYXNzZW1ibGUtbmV4dC1s aW5lIiwgY2xhc3NfcnVuLAorCQkJZGlzYXNzZW1ibGVfbmV4dF9saW5lX2Vu dW0sCisJCQkmZGlzYXNzZW1ibGVfbmV4dF9saW5lLCBfKCJcCitTZXQgZGVi dWdnZXIncyB3aWxsaW5nbmVzcyB0byB1c2UgZGlzYXNzZW1ibGUtbmV4dC1s aW5lLiIpLCBfKCJcCitTaG93IGRlYnVnZ2VyJ3Mgd2lsbGluZ25lc3MgdG8g dXNlIGRpc2Fzc2VtYmxlLW5leHQtbGluZS4iKSwgXygiXAorSWYgT04sIEdE QiB3aWxsIGRpc2Fzc2VtYmxlIHRoZSBuZXh0IHNvdXJjZSBsaW5lIHdoZW4g ZXhlY3V0aW9uXG5cCitzdG9wcy5cblwKK0lmIEFVVE8gKHdoaWNoIGlzIHRo ZSBkZWZhdWx0KSBvciB0aGUgbmV4dCBzb3VyY2UgbGluZSBjYW5ub3QgYmVc blwKK2FzY2VydGFpbmVkLCB0aGUgbmV4dCBpbnN0cnVjdGlvbiB3aWxsIGJl IGRpc2Fzc2VtYmxlZCBpbnN0ZWFkLiIpLAorCQkJTlVMTCwKKwkJCXNob3df ZGlzYXNzZW1ibGVfbmV4dF9saW5lLAorCQkJJnNldGxpc3QsICZzaG93bGlz dCk7CisKICNpZiAwCiAgIGFkZF9jbWQgKCJiYWNrdHJhY2UtbGltaXQiLCBj bGFzc19zdGFjaywgc2V0X2JhY2t0cmFjZV9saW1pdF9jb21tYW5kLCBfKFwK ICJTcGVjaWZ5IG1heGltdW0gbnVtYmVyIG9mIGZyYW1lcyBmb3IgXCJiYWNr dHJhY2VcIiB0byBwcmludCBieSBkZWZhdWx0LiIpLAo= --001485f0e778dd48aa0464f4b9ba--