From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28068 invoked by alias); 28 Mar 2003 18:37:13 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 28060 invoked from network); 28 Mar 2003 18:37:12 -0000 Received: from unknown (HELO myri1.info.uvt.ro) (194.102.62.30) by sources.redhat.com with SMTP; 28 Mar 2003 18:37:12 -0000 Received: from myri1.info.uvt.ro (localhost.localdomain [127.0.0.1]) by myri1.info.uvt.ro (8.12.8/8.11.6) with ESMTP id h2SIbBCn008847 for ; Fri, 28 Mar 2003 20:37:11 +0200 Received: from localhost (cornel@localhost) by myri1.info.uvt.ro (8.12.8/8.12.8/Submit) with ESMTP id h2SIbAhF009891 for ; Fri, 28 Mar 2003 20:37:11 +0200 Date: Fri, 28 Mar 2003 18:37:00 -0000 From: Cornel Izbasa To: gdb-patches@sources.redhat.com Subject: BUG & sugg. PATCH in GDB 5.3 (and prob. earlier) with text alignment In-Reply-To: <200303280527.h2S5RihC064049@router.uvt.ro> Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="1723997758-747751302-1048876630=:16994" X-SW-Source: 2003-03/txt/msg00570.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --1723997758-747751302-1048876630=:16994 Content-Type: TEXT/PLAIN; charset=US-ASCII Content-length: 1472 There's an incorrect text alignment in GDB 5.3 and 5.0 (probably others) that causes the instruction in first line of the disassembly text to be incorrectly aligned with the others, if the function name is less than 3 characters long (and in some other cases). ... int fa(int a) { return 0; } ... (gdb) disas fa Dump of assembler code for function fa: 0x8048448 : push %ebp 0x8048449 : mov %esp,%ebp 0x804844b : mov $0x0,%eax 0x8048450 : pop %ebp 0x8048451 : ret 0x8048452 : mov %esi,%esi End of assembler dump. So, I've changed disassemble_command, print_address and print_symbolic_address in the gdb/printcmd.c and their prototypes in gdb/defs.h to get correct text alignment. After patching with text-align.patch (attached) the disassembly looks like this: (gdb) disas fa Dump of assembler code for function fa: 0x8048448 : push %ebp 0x8048449 : mov %esp,%ebp 0x804844b : mov $0x0,%eax 0x8048450 : pop %ebp 0x8048451 : ret 0x8048452 : mov %esi,%esi End of assembler dump. I've tested it for many functions and it seems to work OK. I should do the same for the case when we also print file names and line numbers, but I thought I'd better get a more informed opinion first. Hope this helps in some way, Please let me know if I need to change anything, Cornel --1723997758-747751302-1048876630=:16994 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="text-align.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Fix incorrect text-alignment Content-Disposition: attachment; filename="text-align.patch" Content-length: 6174 ZGlmZiAtdXJOIG9sZGdkYi9nZGIvZGVmcy5oIG5ld2dkYi9nZGIvZGVmcy5o DQotLS0gb2xkZ2RiL2dkYi9kZWZzLmgJVGh1IEF1ZyAgMSAyMDoxODozMiAy MDAyDQorKysgbmV3Z2RiL2dkYi9kZWZzLmgJRnJpIE1hciAyOCAwNTowMjow MCAyMDAzDQpAQCAtNTQ5LDcgKzU0OSw3IEBADQogDQogZXh0ZXJuIHZvaWQg c2V0X25leHRfYWRkcmVzcyAoQ09SRV9BRERSKTsNCiANCi1leHRlcm4gdm9p ZCBwcmludF9hZGRyZXNzX3N5bWJvbGljIChDT1JFX0FERFIsIHN0cnVjdCB1 aV9maWxlICosIGludCwNCitleHRlcm4gdW5zaWduZWQgaW50IHByaW50X2Fk ZHJlc3Nfc3ltYm9saWMgKENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwg aW50LA0KIAkJCQkgICAgY2hhciAqKTsNCiANCiBleHRlcm4gaW50IGJ1aWxk X2FkZHJlc3Nfc3ltYm9saWMgKENPUkVfQUREUiBhZGRyLA0KQEAgLTU2Miw3 ICs1NjIsNyBAQA0KIA0KIGV4dGVybiB2b2lkIHByaW50X2FkZHJlc3NfbnVt ZXJpYyAoQ09SRV9BRERSLCBpbnQsIHN0cnVjdCB1aV9maWxlICopOw0KIA0K LWV4dGVybiB2b2lkIHByaW50X2FkZHJlc3MgKENPUkVfQUREUiwgc3RydWN0 IHVpX2ZpbGUgKik7DQorZXh0ZXJuIHVuc2lnbmVkIGludCBwcmludF9hZGRy ZXNzIChDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxlICopOw0KIA0KIC8qIEZy b20gc291cmNlLmMgKi8NCiANCmRpZmYgLXVyTiBvbGRnZGIvZ2RiL3ByaW50 Y21kLmMgbmV3Z2RiL2dkYi9wcmludGNtZC5jDQotLS0gb2xkZ2RiL2dkYi9w cmludGNtZC5jCVRodSBKdWwgMTEgMjM6NDY6MTkgMjAwMg0KKysrIG5ld2dk Yi9nZGIvcHJpbnRjbWQuYwlGcmkgTWFyIDI4IDA1OjUwOjQxIDIwMDMNCkBA IC01NDMsNyArNTQzLDggQEANCiAgICBmb3JtLiAgSG93ZXZlciBub3RlIHRo YXQgRE9fREVNQU5HTEUgY2FuIGJlIG92ZXJyaWRkZW4gYnkgdGhlIHNwZWNp ZmljDQogICAgc2V0dGluZ3Mgb2YgdGhlIGRlbWFuZ2xlIGFuZCBhc21fZGVt YW5nbGUgdmFyaWFibGVzLiAgKi8NCiANCi12b2lkDQorLyogUmV0dXJuIHRo ZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0b29rLXVwIGJ5IHRoZSBvZmZzZXQu ICovDQordW5zaWduZWQgaW50DQogcHJpbnRfYWRkcmVzc19zeW1ib2xpYyAo Q09SRV9BRERSIGFkZHIsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBk b19kZW1hbmdsZSwNCiAJCQljaGFyICpsZWFkaW4pDQogew0KQEAgLTU1Miw3 ICs1NTMsOSBAQA0KICAgaW50IHVubWFwcGVkID0gMDsNCiAgIGludCBvZmZz ZXQgPSAwOw0KICAgaW50IGxpbmUgPSAwOw0KLQ0KKyAgdW5zaWduZWQgaW50 IGF1eDsgLyogYXV4aWxpYXJ5IHZhciB1c2VkIHRvIGNvbXB1dGUgdGhlIHZh bHVlIHRvIHN0b3JlIGluIGNoYXJzICovDQorICB1bnNpZ25lZCBpbnQgY2hh cnMgPSAwOyAvKiBudW1iZXIgb2YgY2hhcnMgdXNlZCBmb3IgdGhlIG9mZnNl dCAqLw0KKyAgDQogICAvKiB0aHJvdyBhd2F5IGJvdGggbmFtZSBhbmQgZmls ZW5hbWUgKi8NCiAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwX2NoYWluID0g bWFrZV9jbGVhbnVwIChmcmVlX2N1cnJlbnRfY29udGVudHMsICZuYW1lKTsN CiAgIG1ha2VfY2xlYW51cCAoZnJlZV9jdXJyZW50X2NvbnRlbnRzLCAmZmls ZW5hbWUpOw0KQEAgLTU2MCw3ICs1NjMsNyBAQA0KICAgaWYgKGJ1aWxkX2Fk ZHJlc3Nfc3ltYm9saWMgKGFkZHIsIGRvX2RlbWFuZ2xlLCAmbmFtZSwgJm9m ZnNldCwgJmZpbGVuYW1lLCAmbGluZSwgJnVubWFwcGVkKSkNCiAgICAgew0K ICAgICAgIGRvX2NsZWFudXBzIChjbGVhbnVwX2NoYWluKTsNCi0gICAgICBy ZXR1cm47DQorICAgICAgcmV0dXJuIDA7DQogICAgIH0NCiANCiAgIGZwdXRz X2ZpbHRlcmVkIChsZWFkaW4sIHN0cmVhbSk7DQpAQCAtNTY5LDkgKzU3Miwy MiBAQA0KICAgZWxzZQ0KICAgICBmcHV0c19maWx0ZXJlZCAoIjwiLCBzdHJl YW0pOw0KICAgZnB1dHNfZmlsdGVyZWQgKG5hbWUsIHN0cmVhbSk7DQotICBp ZiAob2Zmc2V0ICE9IDApDQotICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVh bSwgIisldSIsICh1bnNpZ25lZCBpbnQpIG9mZnNldCk7DQotDQorICBpZiAo b2Zmc2V0ICE9IDApIA0KKyAgICB7DQorICAgICAgLyogVGhpcyBpcyBmb3Ig dGhlICcrJyBpbiAiKyV1IiAqLw0KKyAgICAgIGNoYXJzKys7IA0KKyAgICAg IGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIisldSIsICh1bnNpZ25lZCBp bnQpIG9mZnNldCk7DQorICAgICAgLyogQ29tcHV0ZSB0aGUgbnVtYmVyIG9m IGNoYXJhY3RlcnMgdG9vay11cCBieSBvZmZzZXQuICovDQorICAgICAgYXV4 ID0gb2Zmc2V0OyAgICANCisgICAgICB3aGlsZShhdXggLz0gMTApDQorICAg ICAgICBjaGFycysrOw0KKyAgICAgIGNoYXJzKys7DQorICAgIH0gDQorICBl bHNlDQorICAgIC8qIG9mZnNldCB0b29rLXVwIDAgY2hhcmFjdGVycywgYmVj YXVzZSB3ZSBkb24ndCBwcmludCBhbnl0aGluZyBpbiB0aGlzIGNhc2UuICov IA0KKyAgICBjaGFycyA9IDA7DQorICANCisgICAgDQogICAvKiBBcHBlbmQg c291cmNlIGZpbGVuYW1lIGFuZCBsaW5lIG51bWJlciBpZiBkZXNpcmVkLiAg R2l2ZSBzcGVjaWZpYw0KICAgICAgbGluZSAjIG9mIHRoaXMgYWRkciwgaWYg d2UgaGF2ZSBpdDsgZWxzZSBsaW5lICMgb2YgdGhlIG5lYXJlc3Qgc3ltYm9s LiAgKi8NCiAgIGlmIChwcmludF9zeW1ib2xfZmlsZW5hbWUgJiYgZmlsZW5h bWUgIT0gTlVMTCkNCkBAIC01ODcsNiArNjAzLDcgQEANCiAgICAgZnB1dHNf ZmlsdGVyZWQgKCI+Iiwgc3RyZWFtKTsNCiANCiAgIGRvX2NsZWFudXBzIChj bGVhbnVwX2NoYWluKTsNCisgIHJldHVybiBjaGFyczsNCiB9DQogDQogLyog R2l2ZW4gYW4gYWRkcmVzcyBBRERSIHJldHVybiBhbGwgdGhlIGVsZW1lbnRz IG5lZWRlZCB0byBwcmludCB0aGUNCkBAIC03NDcsMTEgKzc2NCwxNCBAQA0K ICAgIEZpcnN0IHByaW50IGl0IGFzIGEgbnVtYmVyLiAgVGhlbiBwZXJoYXBz IHByaW50DQogICAgPFNZTUJPTCArIE9GRlNFVD4gYWZ0ZXIgdGhlIG51bWJl ci4gICovDQogDQotdm9pZA0KKy8qIFJldHVybiB0aGUgbnVtYmVyIG9mIGNo YXJhY3RlcnMgdG9vay11cCBieSB0aGUgb2Zmc2V0IGluIHByaW50X2FkZHJl c3Nfc3ltYm9saWMuIA0KKyAgIFdlIHVzZSB0aGlzIGluIGRpc2Fzc2VtYmxl X2NvbW1hbmQgZm9yIGNvcnJlY3QgdGV4dCBhbGlnbm1lbnQuICovDQordW5z aWduZWQgaW50DQogcHJpbnRfYWRkcmVzcyAoQ09SRV9BRERSIGFkZHIsIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0pDQogew0KICAgcHJpbnRfYWRkcmVzc19u dW1lcmljIChhZGRyLCAxLCBzdHJlYW0pOw0KLSAgcHJpbnRfYWRkcmVzc19z eW1ib2xpYyAoYWRkciwgc3RyZWFtLCBhc21fZGVtYW5nbGUsICIgIik7DQor ICAvKiBSZXR1cm4gdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvb2stdXAg YnkgdGhlIG9mZnNldC4gKi8NCisgIHJldHVybiBwcmludF9hZGRyZXNzX3N5 bWJvbGljIChhZGRyLCBzdHJlYW0sIGFzbV9kZW1hbmdsZSwgIiAiKTsNCiB9 DQogDQogLyogUHJpbnQgYWRkcmVzcyBBRERSIHN5bWJvbGljYWxseSBvbiBT VFJFQU0uICBQYXJhbWV0ZXIgREVNQU5HTEUNCkBAIC0yMjc2LDYgKzIyOTYs NyBAQA0KICAgY2hhciAqbmFtZTsNCiAgIENPUkVfQUREUiBwYywgcGNfbWFz a2VkOw0KICAgY2hhciAqc3BhY2VfaW5kZXg7DQorICB1bnNpZ25lZCBpbnQg bW9yZV9zcGFjZXM7IC8qIHRoZSBudW1iZXIgb2YgZXh0cmEgY2hhcmFjdGVy cyBmb3IgcHJpbnRpbmcgdGhlIG9mZnNldCBpbiBwcmludF9hZGRyZXNzX3N5 bWJvbGljICovDQogI2lmIDANCiAgIGFzZWN0aW9uICpzZWN0aW9uOw0KICNl bmRpZg0KQEAgLTIzNDUsOCArMjM2NiwxNiBAQA0KICAgICAgIHdoaWxlIChw Y19tYXNrZWQgPCBoaWdoKQ0KIAl7DQogCSAgUVVJVDsNCi0JICBwcmludF9h ZGRyZXNzIChwY19tYXNrZWQsIGdkYl9zdGRvdXQpOw0KLQkgIHByaW50Zl9m aWx0ZXJlZCAoIjpcdCIpOw0KKwkgIC8qIEdldCB0aGUgbnVtYmVyIG9mIGV4 dHJhIGNoYXJhY3RlcnMgdXNlZCBieSB0aGUgb2Zmc2V0IG9uIHRoaXMgbGlu ZS4gKi8NCisJICBtb3JlX3NwYWNlcyA9IHByaW50X2FkZHJlc3MgKHBjX21h c2tlZCwgZ2RiX3N0ZG91dCk7DQorCSAgLyogV2UgYWxsb3cgZm9yIG1heGlt dW0gOCBleHRyYSBjaGFyYWN0ZXJzIC0gYWRqdXN0IHRoaXMgaG93IHlvdSBz ZWUgZml0LiAqLw0KKwkgIG1vcmVfc3BhY2VzID0gOCAtIG1vcmVfc3BhY2Vz Ow0KKwkgIA0KKwkgIHByaW50Zl9maWx0ZXJlZCgiOiAiKTsNCisJICAvKiBX ZSBwcmludCB0aGUgZXh0cmEgc3BhY2VzIG5lZWRlZCBmb3IgdGhpcyBsaW5l IHNvIHRoYXQgd2UgZ2V0IGEgY29ycmVjdCBhbGlnbm1lbnQuICovDQorCSAg d2hpbGUobW9yZV9zcGFjZXMtLSkNCisJICAgIHByaW50Zl9maWx0ZXJlZCgi ICIpOw0KKwkgIA0KIAkgIC8qIFdlIG9mdGVuIHdyYXAgaGVyZSBpZiB0aGVy ZSBhcmUgbG9uZyBzeW1ib2xpYyBuYW1lcy4gICovDQogCSAgd3JhcF9oZXJl ICgiICAgICIpOw0KIAkgIHBjICs9IHByaW50X2luc24gKHBjLCBnZGJfc3Rk b3V0KTsNCg== --1723997758-747751302-1048876630=:16994--