RFA: Skip ARM ELF Mapping symbols when showing disassembly

Richard Earnshaw rearnsha@arm.com
Tue Nov 25 12:34:00 GMT 2003

> Hi Andrew,
> > Hmm, what information do those mapping symbols provide?  Dig dig (from
> > tc-arm.c) ...
> [snip]
> > So GDB and objdump both need this information?
> Well yes and no...
> > How does objdump handle all this?
> Apart from a hack to objdump to skip the mapping symbols when
> displaying disassembly it does not use them.

It should use them.  Then it can correctly disassemble data as data rather 
than instructions.

> Objdump (and gdb) both have perfectly adequate mechanisms for
> distinguishing between code and data and between ARM and THUMB
> instructions, so they do not need the mapping symbols.

No they don't.  Try to disassemble a function that contains a mix of ARM 
and Thumb code and you will find that gdb/objdump just get it wrong.

For example:

	.code 16
	.align 0
	.global func
	bx	pc
	.code 32
	bx	lr

which is disassembled as

a.out:     file format elf32-littlearm

Disassembly of section .text:

00000000 <func>:
   0:   4778            bx      pc
   2:   46c0            nop                     (mov r8, r8)
   4:   ff1e            second half of BL instruction 0xff1e
   6:   e12f            b       268 <func+0x268>


More information about the Gdb-patches mailing list