mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 00:03:29 +08:00
[Binutils][Objdump]Check symbol section information while search a mapping symbol backward.
When checking mapping symbols backwardly, the section which defines the symbol is not considerted. This patch fixes this by moving the section checking code into get_sym_code_type () function which is shared by forward and backword mapping symbol searching. opcodes/ 2017-12-11 Petr Pavlu <petr.pavlu@arm.com> Renlin Li <renlin.li@arm.com> * aarch64-dis.c (print_insn_aarch64): Move symbol section check ... (get_sym_code_type): Here. binutils/ 2017-12-11 Renlin Li <renlin.li@arm.com> * testsuite/binutils-all/aarch64/objdump.d: New. * testsuite/binutils-all/aarch64/objdump.s: New.
This commit is contained in:
parent
3c0aa29aab
commit
4c5ae11b42
@ -1,3 +1,8 @@
|
||||
2017-12-11 Renlin Li <renlin.li@arm.com>
|
||||
|
||||
* testsuite/binutils-all/aarch64/objdump.d: New.
|
||||
* testsuite/binutils-all/aarch64/objdump.s: New.
|
||||
|
||||
2017-12-08 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* objcopy.c (copy_relocations_in_section): Use the orelocations
|
||||
|
19
binutils/testsuite/binutils-all/aarch64/objdump.d
Normal file
19
binutils/testsuite/binutils-all/aarch64/objdump.d
Normal file
@ -0,0 +1,19 @@
|
||||
#PROG: objcopy
|
||||
#objdump: -d
|
||||
#name: Check that the disassembler properly dump instruction and data.
|
||||
|
||||
.*: +file format .*aarch64.*
|
||||
|
||||
Disassembly of section \.text:
|
||||
|
||||
0+000 <l1>:
|
||||
0: d503201f nop
|
||||
|
||||
0+004 <l2>:
|
||||
4: d503201f nop
|
||||
8: 00c0ffee \.word 0x00c0ffee
|
||||
|
||||
Disassembly of section .fini:
|
||||
|
||||
0+000 <\.fini>:
|
||||
0: 0000dead \.word 0x0000dead
|
9
binutils/testsuite/binutils-all/aarch64/objdump.s
Normal file
9
binutils/testsuite/binutils-all/aarch64/objdump.s
Normal file
@ -0,0 +1,9 @@
|
||||
.text
|
||||
l1:
|
||||
nop
|
||||
l2:
|
||||
nop
|
||||
.word 0xc0ffee
|
||||
|
||||
.section .fini, "x"
|
||||
.word 0xdead
|
@ -1,3 +1,9 @@
|
||||
2017-12-11 Petr Pavlu <petr.pavlu@arm.com>
|
||||
Renlin Li <renlin.li@arm.com>
|
||||
|
||||
* aarch64-dis.c (print_insn_aarch64): Move symbol section check ...
|
||||
(get_sym_code_type): Here.
|
||||
|
||||
2017-12-03 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* ppc-opc.c (extract_li20): Rewrite.
|
||||
|
@ -3097,6 +3097,10 @@ get_sym_code_type (struct disassemble_info *info, int n,
|
||||
unsigned int type;
|
||||
const char *name;
|
||||
|
||||
/* If the symbol is in a different section, ignore it. */
|
||||
if (info->section != NULL && info->section != info->symtab[n]->section)
|
||||
return FALSE;
|
||||
|
||||
es = *(elf_symbol_type **)(info->symtab + n);
|
||||
type = ELF_ST_TYPE (es->internal_elf_sym.st_info);
|
||||
|
||||
@ -3171,9 +3175,7 @@ print_insn_aarch64 (bfd_vma pc,
|
||||
addr = bfd_asymbol_value (info->symtab[n]);
|
||||
if (addr > pc)
|
||||
break;
|
||||
if ((info->section == NULL
|
||||
|| info->section == info->symtab[n]->section)
|
||||
&& get_sym_code_type (info, n, &type))
|
||||
if (get_sym_code_type (info, n, &type))
|
||||
{
|
||||
last_sym = n;
|
||||
found = TRUE;
|
||||
|
Loading…
Reference in New Issue
Block a user