From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11855 invoked by alias); 8 Mar 2009 05:34:49 -0000 Received: (qmail 11847 invoked by uid 22791); 8 Mar 2009 05:34:48 -0000 X-SWARE-Spam-Status: No, hits=-0.6 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.187) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 08 Mar 2009 05:34:42 +0000 Received: by ti-out-0910.google.com with SMTP id y8so641673tia.12 for ; Sat, 07 Mar 2009 21:34:38 -0800 (PST) MIME-Version: 1.0 Received: by 10.110.40.8 with SMTP id n8mr6467533tin.41.1236490478401; Sat, 07 Mar 2009 21:34:38 -0800 (PST) Date: Sun, 08 Mar 2009 05:34:00 -0000 Message-ID: Subject: [RFC] disassemble-next-line From: teawater To: tromey@redhat.com, Eli Zaretskii , Doug Evans , Pedro Alves , Daniel Jacobowitz Cc: "gdb-patches@sourceware.org" Content-Type: multipart/mixed; boundary=0016e652f714bbcedb046494dffa 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/msg00098.txt.bz2 --0016e652f714bbcedb046494dffa Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2813 Hi guys, This is the patch for the function to output assembly codes for next line. I this a rfc and doesn't include doc because we still a lot of thing is not decided. Such as the name, the behavior and maybe something else. I didn't add disassemble-next-line-max because I want output a warning this message is cut if the number is bigger than max. But make sure it's cut or not is not easy. And there is already a filter when output the assembly codes. So I think maybe we don't need it. Please send your comment. Thanks a lot. :) Thanks, Hui On Thu, Mar 5, 2009 at 10:41, teawater wrote: > > Thanks guys, > > For the people that want extend disassemble: > Output assembly codes of next-line is just one part of this idea. > > We still have another part: > 1. Auto mode, output assembly codes only if there is not line message > for current pc. > For example: > (gdb) si > 0x080483ee =A0 =A0 =A024 =A0 =A0 =A0 =A0 =A0 =A0 =A0b =3D printf ("a =3D = %d b =3D %d c =3D %d\n", a, b, c); > (gdb) si > 0x080482d8 in printf@plt () > Current language: =A0auto; currently asm > 0x080482d8 : =A0 =A0 =A0jmp =A0 =A0*0x8049670 > (gdb) si > 0x080482de in printf@plt () > 0x080482de : =A0 =A0 =A0push =A0 $0x10 > > I think maybe is can be default option of gdb. =A0Add it to display with = itself? > > > 2. Output assembly codes number limit. > This idea form Doug: > Also, the user might want to set a limit on the number of lines of > disassembly displayed. > If cut short gdb could print "[output cut short due to `set > dissemble-next-line-max 10']" (or some such). > > I think maybe it need output something like "This message is cut ... > you can set it with ...". > > > 3. Special for optimized code. > This idea form Doug too: > For debugging optimized code, maybe it'd be nice if gdb determined > there were more (discontiguous) lines of disassembly to display for > the current source line and notified the user (by printing > "discontiguous source line" or some such) before and/or after the > output. > > > > I think maybe is too much thing for disassemble. > > > > Thanks, > Hui > > > > On Thu, Mar 5, 2009 at 07:40, Tom Tromey wrote: > >>>>>> "Daniel" =3D=3D Daniel Jacobowitz writes: > > > >>> Right, I thought about something that begins with "disassemble", but > >>> didn't want to shoot our completion habits in the foot, since > >>> currently typing just "disas TAB" is all I need to get disassembly. > > > > Daniel> I agree we don't want to change that binding (I use it all the = time). > > Daniel> But is it a problem? =A0This would be under set, if I understan= d right. > > > > Yeah, this sounds reasonable to me. > > I'd prefer to have some word like "disassemble" in the parameter name. > > > > Tom > > --0016e652f714bbcedb046494dffa 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_fs1a7afz0 Content-length: 5531 LS0tCiBzdGFjay5jIHwgICA4NSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZp bGUgY2hhbmdlZCwgODUgaW5zZXJ0aW9ucygrKQoKLS0tIGEvc3RhY2suYwor KysgYi9zdGFjay5jCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAidmFs cHJpbnQuaCIKICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKICNpbmNsdWRlICJj cC1zdXBwb3J0LmgiCisjaW5jbHVkZSAiZGlzYXNtLmgiCiAKICNpbmNsdWRl ICJnZGJfYXNzZXJ0LmgiCiAjaW5jbHVkZSA8Y3R5cGUuaD4KQEAgLTQ1Niw2 ICs0NTcsNTMgQEAgc2V0X2N1cnJlbnRfc2FsX2Zyb21fZnJhbWUgKHN0cnVj dCBmcmFtZQogICAgIH0KIH0KIAorLyogRW51bSBzdHJpbmdzIGZvciAic2V0 fHNob3cgZGlzYXNzZW1ibGUtbmV4dC1saW5lIi4gICovCisKK3N0YXRpYyBj b25zdCBjaGFyIGRpc2Fzc2VtYmxlX25leHRfbGluZV9hdXRvW10gPSAiYXV0 byI7CitzdGF0aWMgY29uc3QgY2hhciBkaXNhc3NlbWJsZV9uZXh0X2xpbmVf b25bXSA9ICJvbiI7CitzdGF0aWMgY29uc3QgY2hhciBkaXNhc3NlbWJsZV9u ZXh0X2xpbmVfb2ZmW10gPSAib2ZmIjsKK3N0YXRpYyBjb25zdCBjaGFyICpk aXNhc3NlbWJsZV9uZXh0X2xpbmVfZW51bVtdID0KK3sKKyAgZGlzYXNzZW1i bGVfbmV4dF9saW5lX2F1dG8sCisgIGRpc2Fzc2VtYmxlX25leHRfbGluZV9v biwKKyAgZGlzYXNzZW1ibGVfbmV4dF9saW5lX29mZiwKKyAgTlVMTCwKK307 CisKKy8qIElmIE9OLCBHREIgd2lsbCBvdXRwdXQgdGhlIGFzc2VtYmx5IGNv ZGVzIG9mIG5leHQgbGluZS4KKyAgIElmIE9GRiwgR0RCIHdpbGwgbm90IGRv IGl0LgorICAgZG9lc24ndCBzdXBwb3J0IGl0LCBHREIgd2lsbCBpbnN0ZWFk IHVzZSB0aGUgdHJhZGl0aW9uYWwKKyAgIElmIEFVVE8gKHdoaWNoIGlzIHRo ZSBkZWZhdWx0KSwgR0RCIHdpbGwgb3V0cHV0IGEgYXNzZW1ibHkgY29kZQor ICAgYXQgY3VycmVudCBhZGRyZXNzIGlmIHRoZXJlIGlzIG5vdCBsaW5lIG1l c3NhZ2UuICAqLworCitzdGF0aWMgY29uc3QgY2hhciAqZGlzYXNzZW1ibGVf bmV4dF9saW5lID0gZGlzYXNzZW1ibGVfbmV4dF9saW5lX29uOworCitzdGF0 aWMgdm9pZAorc2hvd19kaXNhc3NlbWJsZV9uZXh0X2xpbmUgKHN0cnVjdCB1 aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHksCisJCQkJIHN0cnVjdCBjbWRf bGlzdF9lbGVtZW50ICpjLAorCQkJCSBjb25zdCBjaGFyICp2YWx1ZSkKK3sK KyAgZnByaW50Zl9maWx0ZXJlZCAoZmlsZSwgXygiXAorRGVidWdnZXIncyB3 aWxsaW5nbmVzcyB0byB1c2UgZGlzYXNzZW1ibGUtbmV4dC1saW5lIGlzICVz LlxuIiksIHZhbHVlKTsKK30KKworLyogU2hvdyBhc3NlbWJseSBjb2Rlczsg c3R1YiBmb3IgY2F0Y2hfZXJyb3JzLiAgKi8KKworc3RydWN0IGdkYl9kaXNh c3NlbWJseV9zdHViX2FyZ3MKK3sKKyAgaW50IGhvd19tYW55OworICBDT1JF X0FERFIgbG93OworICBDT1JFX0FERFIgaGlnaDsKK307CisKK3N0YXRpYyBp bnQKK2dkYl9kaXNhc3NlbWJseV9zdHViICh2b2lkICphcmdzKQoreworICBz dHJ1Y3QgZ2RiX2Rpc2Fzc2VtYmx5X3N0dWJfYXJncyAqcCA9IGFyZ3M7Cisg IGdkYl9kaXNhc3NlbWJseSAodWlvdXQsIDAsIDAsIDAsIHAtPmhvd19tYW55 LCBwLT5sb3csIHAtPmhpZ2gpOworICByZXR1cm4gMDsKK30KKwogLyogUHJp bnQgaW5mb3JtYXRpb24gYWJvdXQgZnJhbWUgRlJBTUUuICBUaGUgb3V0cHV0 IGlzIGZvcm1hdCBhY2NvcmRpbmcKICAgIHRvIFBSSU5UX0xFVkVMIGFuZCBQ UklOVF9XSEFUIGFuZCBQUklOVCBBUkdTLiAgVGhlIG1lYW5pbmcgb2YKICAg IFBSSU5UX1dIQVQgaXM6CkBAIC01MzMsNiArNTgxLDE5IEBAIHByaW50X2Zy YW1lX2luZm8gKHN0cnVjdCBmcmFtZV9pbmZvICpmcmEKIAogICBzb3VyY2Vf cHJpbnQgPSAocHJpbnRfd2hhdCA9PSBTUkNfTElORSB8fCBwcmludF93aGF0 ID09IFNSQ19BTkRfTE9DKTsKIAorICAvKiBJZiBkaXNhc3NlbWJsZS1uZXh0 LWxpbmUgaXMgc2V0IHRvIGF1dG8gb3Igb24gYW5kIGRvZXNuJ3QgaGF2ZQor ICAgICBsaW5lIG1lc3NhZ2UsIG91dHB1dCBjdXJyZW50IGluc3RydWN0aW9u cy4gICovCisgIGlmICgoZGlzYXNzZW1ibGVfbmV4dF9saW5lID09IGRpc2Fz c2VtYmxlX25leHRfbGluZV9hdXRvCisgICAgICAgfHwgZGlzYXNzZW1ibGVf bmV4dF9saW5lID09IGRpc2Fzc2VtYmxlX25leHRfbGluZV9vbikKKyAgICAg ICYmIHNvdXJjZV9wcmludCAmJiAhc2FsLnN5bXRhYikKKyAgICB7CisgICAg ICBzdHJ1Y3QgZ2RiX2Rpc2Fzc2VtYmx5X3N0dWJfYXJncyBhcmdzOworICAg ICAgYXJncy5ob3dfbWFueSA9IDE7CisgICAgICBhcmdzLmxvdyA9IGdldF9m cmFtZV9wYyAoZnJhbWUpOworICAgICAgYXJncy5oaWdoID0gZ2V0X2ZyYW1l X3BjIChmcmFtZSkgKyAxOworICAgICAgY2F0Y2hfZXJyb3JzIChnZGJfZGlz YXNzZW1ibHlfc3R1YiwgJmFyZ3MsICIiLCBSRVRVUk5fTUFTS19BTEwpOwor ICAgIH0KKwogICBpZiAoc291cmNlX3ByaW50ICYmIHNhbC5zeW10YWIpCiAg ICAgewogICAgICAgaW50IGRvbmUgPSAwOwpAQCAtNTY5LDYgKzYzMCwxNyBA QCBwcmludF9mcmFtZV9pbmZvIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhCiAJ ICAgICAgcHJpbnRfc291cmNlX2xpbmVzIChzYWwuc3ltdGFiLCBzYWwubGlu ZSwgc2FsLmxpbmUgKyAxLCAwKTsKIAkgICAgfQogCX0KKworICAgICAgLyog SWYgZGlzYXNzZW1ibGUtbmV4dC1saW5lIGlzIHNldCB0byBvbiBhbmQgdGhl cmUgaXMgbGluZQorICAgICAgICAgbWVzc2FnZXMsIG91dHB1dCBhc3NlbWJs eSBjb2RlcyBmb3IgbmV4dCBsaW5lLiAgKi8KKyAgICAgIGlmIChkaXNhc3Nl bWJsZV9uZXh0X2xpbmUgPT0gZGlzYXNzZW1ibGVfbmV4dF9saW5lX29uKQor ICAgICAgICB7CisgICAgICAgICAgc3RydWN0IGdkYl9kaXNhc3NlbWJseV9z dHViX2FyZ3MgYXJnczsKKyAgICAgICAgICBhcmdzLmhvd19tYW55ID0gLTE7 CisgICAgICAgICAgYXJncy5sb3cgPSBnZXRfZnJhbWVfcGMgKGZyYW1lKTsK KyAgICAgICAgICBhcmdzLmhpZ2ggPSBzYWwuZW5kOworICAgICAgICAgIGNh dGNoX2Vycm9ycyAoZ2RiX2Rpc2Fzc2VtYmx5X3N0dWIsICZhcmdzLCAiIiwg UkVUVVJOX01BU0tfQUxMKTsKKyAgICAgICAgfQogICAgIH0KIAogICBpZiAo cHJpbnRfd2hhdCAhPSBMT0NBVElPTikKQEAgLTIwNjIsNiArMjEzNCwxOSBA QCBVc2FnZTogZnVuYyA8bmFtZT5cbiIpKTsKIAkJCV8oIlNob3cgcHJpbnRp bmcgb2Ygbm9uLXNjYWxhciBmcmFtZSBhcmd1bWVudHMiKSwKIAkJCU5VTEws IE5VTEwsIE5VTEwsICZzZXRwcmludGxpc3QsICZzaG93cHJpbnRsaXN0KTsK IAorICBhZGRfc2V0c2hvd19lbnVtX2NtZCAoImRpc2Fzc2VtYmxlLW5leHQt bGluZSIsIGNsYXNzX3J1biwKKwkJCWRpc2Fzc2VtYmxlX25leHRfbGluZV9l bnVtLAorCQkJJmRpc2Fzc2VtYmxlX25leHRfbGluZSwgXygiXAorU2V0IGRl YnVnZ2VyJ3Mgd2lsbGluZ25lc3MgdG8gdXNlIGRpc2Fzc2VtYmxlLW5leHQt bGluZS4iKSwgXygiXAorU2hvdyBkZWJ1Z2dlcidzIHdpbGxpbmduZXNzIHRv IHVzZSBkaXNhc3NlbWJsZS1uZXh0LWxpbmUuIiksIF8oIlwKK0lmIG9uLCBn ZGIgd2lsbCBvdXRwdXQgdGhlIGFzc2VtYmx5IGNvZGVzIG9mIG5leHQgbGlu ZS5cblwKK0lmIG9mZiwgZ2RiIHdpbGwgbm90IGRvIGl0LlxuXAorSWYgYXV0 byAod2hpY2ggaXMgdGhlIGRlZmF1bHQpLCBnZGIgd2lsbCBvdXRwdXQgYSBh c3NlbWJseSBjb2RlXG5cCithdCBjdXJyZW50IGFkZHJlc3MgaWYgdGhlcmUg aXMgbm90IGxpbmUgbWVzc2FnZS4iKSwKKwkJCU5VTEwsCisJCQlzaG93X2Rp c2Fzc2VtYmxlX25leHRfbGluZSwKKwkJCSZzZXRsaXN0LCAmc2hvd2xpc3Qp OworCiAjaWYgMAogICBhZGRfY21kICgiYmFja3RyYWNlLWxpbWl0IiwgY2xh c3Nfc3RhY2ssIHNldF9iYWNrdHJhY2VfbGltaXRfY29tbWFuZCwgXyhcCiAi U3BlY2lmeSBtYXhpbXVtIG51bWJlciBvZiBmcmFtZXMgZm9yIFwiYmFja3Ry YWNlXCIgdG8gcHJpbnQgYnkgZGVmYXVsdC4iKSwK --0016e652f714bbcedb046494dffa--