mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-02 06:03:55 +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>
|
2017-12-08 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* objcopy.c (copy_relocations_in_section): Use the orelocations
|
* 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>
|
2017-12-03 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* ppc-opc.c (extract_li20): Rewrite.
|
* ppc-opc.c (extract_li20): Rewrite.
|
||||||
|
@ -3097,6 +3097,10 @@ get_sym_code_type (struct disassemble_info *info, int n,
|
|||||||
unsigned int type;
|
unsigned int type;
|
||||||
const char *name;
|
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);
|
es = *(elf_symbol_type **)(info->symtab + n);
|
||||||
type = ELF_ST_TYPE (es->internal_elf_sym.st_info);
|
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]);
|
addr = bfd_asymbol_value (info->symtab[n]);
|
||||||
if (addr > pc)
|
if (addr > pc)
|
||||||
break;
|
break;
|
||||||
if ((info->section == NULL
|
if (get_sym_code_type (info, n, &type))
|
||||||
|| info->section == info->symtab[n]->section)
|
|
||||||
&& get_sym_code_type (info, n, &type))
|
|
||||||
{
|
{
|
||||||
last_sym = n;
|
last_sym = n;
|
||||||
found = TRUE;
|
found = TRUE;
|
||||||
|
Loading…
Reference in New Issue
Block a user