X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=binutils%2Fobjdump.c;h=6a1f142a0ebc8f354c2999ba3c5d91aa8148554f;hb=229a22cfd2fd3c82a1b57d4af104f361cb0b0a33;hp=a2a0645685c9ed7bf6e012f4a7e6056da43357c2;hpb=d344b407dddfb59003f646ff29ac0850e7eec588;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/objdump.c b/binutils/objdump.c index a2a0645685..6a1f142a0e 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -264,7 +264,7 @@ usage (FILE *stream, int status) -w, --wide Format output for more than 80 columns\n\ -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n\ --start-address=ADDR Only process data whose address is >= ADDR\n\ - --stop-address=ADDR Only process data whose address is <= ADDR\n\ + --stop-address=ADDR Only process data whose address is < ADDR\n\ --prefix-addresses Print complete address alongside disassembly\n\ --[no-]show-raw-insn Display hex alongside symbolic disassembly\n\ --insn-width=WIDTH Display WIDTH bytes on a single line for -d\n\ @@ -532,7 +532,7 @@ static void dump_section_header (bfd *abfd, asection *section, void *data) { char *comma = ""; - unsigned int opb = bfd_octets_per_byte (abfd); + unsigned int opb = bfd_octets_per_byte (abfd, section); int longest_section_name = *((int *) data); /* Ignore linker created section. See elfNN_ia64_object_p in @@ -584,7 +584,10 @@ dump_section_header (bfd *abfd, asection *section, void *data) PF (SEC_COFF_NOREAD, "NOREAD"); } else if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) - PF (SEC_ELF_PURECODE, "PURECODE"); + { + PF (SEC_ELF_OCTETS, "OCTETS"); + PF (SEC_ELF_PURECODE, "PURECODE"); + } PF (SEC_THREAD_LOCAL, "THREAD_LOCAL"); PF (SEC_GROUP, "GROUP"); if (bfd_get_arch (abfd) == bfd_arch_mep) @@ -2682,7 +2685,7 @@ disassemble_data (bfd *abfd) disasm_info.arch = bfd_get_arch (abfd); disasm_info.mach = bfd_get_mach (abfd); disasm_info.disassembler_options = disassembler_options; - disasm_info.octets_per_byte = bfd_octets_per_byte (abfd); + disasm_info.octets_per_byte = bfd_octets_per_byte (abfd, NULL); disasm_info.skip_zeroes = DEFAULT_SKIP_ZEROES; disasm_info.skip_zeroes_at_end = DEFAULT_SKIP_ZEROES_AT_END; disasm_info.disassembler_needs_relocs = FALSE; @@ -2972,44 +2975,8 @@ dump_dwarf (bfd *abfd) return; } - eh_addr_size = bfd_arch_bits_per_address (abfd) / 8; - switch (bfd_get_arch (abfd)) { - case bfd_arch_i386: - switch (bfd_get_mach (abfd)) - { - case bfd_mach_x86_64: - case bfd_mach_x86_64_intel_syntax: - case bfd_mach_x86_64_nacl: - case bfd_mach_x64_32: - case bfd_mach_x64_32_intel_syntax: - case bfd_mach_x64_32_nacl: - init_dwarf_regnames_x86_64 (); - break; - - default: - init_dwarf_regnames_i386 (); - break; - } - break; - - case bfd_arch_iamcu: - init_dwarf_regnames_iamcu (); - break; - - case bfd_arch_aarch64: - init_dwarf_regnames_aarch64(); - break; - - case bfd_arch_s390: - init_dwarf_regnames_s390 (); - break; - - case bfd_arch_riscv: - init_dwarf_regnames_riscv (); - break; - case bfd_arch_s12z: /* S12Z has a 24 bit address space. But the only known producer of dwarf_info encodes addresses into 32 bits. */ @@ -3017,9 +2984,13 @@ dump_dwarf (bfd *abfd) break; default: + eh_addr_size = bfd_arch_bits_per_address (abfd) / 8; break; } + init_dwarf_regnames_by_bfd_arch_and_mach (bfd_get_arch (abfd), + bfd_get_mach (abfd)); + bfd_map_over_sections (abfd, dump_dwarf_section, NULL); } @@ -3459,7 +3430,7 @@ dump_section (bfd *abfd, asection *section, void *dummy ATTRIBUTE_UNUSED) bfd_vma addr_offset; bfd_vma start_offset; bfd_vma stop_offset; - unsigned int opb = bfd_octets_per_byte (abfd); + unsigned int opb = bfd_octets_per_byte (abfd, section); /* Bytes per line. */ const int onaline = 16; char buf[64];