This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

BUG & sugg. PATCH in GDB 5.3 (and prob. earlier) with text alignment


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 <fa>: push   %ebp
0x8048449 <fa+1>:       mov    %esp,%ebp
0x804844b <fa+3>:       mov    $0x0,%eax
0x8048450 <fa+8>:       pop    %ebp
0x8048451 <fa+9>:       ret    
0x8048452 <fa+10>:      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 <fa>:         push   %ebp
0x8048449 <fa+1>:       mov    %esp,%ebp
0x804844b <fa+3>:       mov    $0x0,%eax
0x8048450 <fa+8>:       pop    %ebp
0x8048451 <fa+9>:       ret    
0x8048452 <fa+10>:      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

Attachment: text-align.patch
Description: Fix incorrect text-alignment


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]