Upstream-Status: Inappropriate [embedded specific] Index: gdb-7.3/gdb/arm-tdep.c =================================================================== --- gdb-7.3.orig/gdb/arm-tdep.c 2011-05-17 14:27:01.000000000 -0700 +++ gdb-7.3/gdb/arm-tdep.c 2011-08-05 22:29:58.784201850 -0700 @@ -7806,6 +7806,19 @@ static void arm_elf_make_msymbol_special(asymbol *sym, struct minimal_symbol *msym) { + + /* FIXME: We want gdb to ignore the ARM ELF mapping symbols when + displaying disassembly so we use this horrible hack here to + artifically set their address to the highest possible value. + This is wrong of course, and it prevents the symbols from being + used for their intended purpose - to distinguish between ARM + and THUMB code. So we ought to find a better way to do this. */ + if (bfd_asymbol_name (sym) + && bfd_asymbol_name (sym)[0] == '$' + && bfd_asymbol_name (sym)[1] != 0 + && bfd_asymbol_name (sym)[2] == 0) + SYMBOL_VALUE_ADDRESS(msym) = (CORE_ADDR) 0x7ffffffc; + if (ARM_SYM_BRANCH_TYPE (&((elf_symbol_type *)sym)->internal_elf_sym) == ST_BRANCH_TO_THUMB) MSYMBOL_SET_SPECIAL (msym);