| ## Test that --section works correctly for -d with -r. |
| # RUN: yaml2obj %s -o %t.o |
| |
| ## Show that only the specified sections are disassembled. |
| ## Also show that no relocation sections are dumped because none are |
| ## specified. |
| # RUN: llvm-objdump -d -r %t.o --section=.text --section=.rodata \ |
| # RUN: | FileCheck %s --check-prefixes=DISASM,RELOC --implicit-check-not=.text2 |
| |
| # DISASM: Disassembly of section .text: |
| # DISASM-EMPTY: |
| # DISASM-NEXT: 0000000000000400 <.text>: |
| # DISASM-NEXT: 400: e8 00 00 00 00 callq 0x405 <.text+0x5> |
| # RELOC-NEXT: 00000401: R_X86_64_PC32 foo+0x1 |
| # RELOC-NEXT: 00000401: R_X86_64_GOT32 foo |
| # DISASM: Disassembly of section .rodata: |
| # DISASM-EMPTY: |
| # DISASM-NEXT: 0000000000000000 <.rodata>: |
| # DISASM-NEXT: 0: 00 00 addb %al, (%rax) |
| # RELOC-NEXT: 0000000000000000: R_X86_64_NONE foo |
| # DISASM-NEXT: 2: 00 00 addb %al, (%rax) |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [SHF_ALLOC, SHF_EXECINSTR] |
| Address: 0x400 |
| AddressAlign: 0x10 |
| Content: 'e800000000' |
| - Name: .text2 |
| Type: SHT_PROGBITS |
| Flags: [SHF_ALLOC, SHF_EXECINSTR] |
| Address: 0x401 |
| Content: '90e800000000' |
| - Name: .rela.text |
| Type: SHT_RELA |
| Info: .text |
| Relocations: |
| - Offset: 1 |
| Symbol: foo |
| Addend: 1 |
| Type: R_X86_64_PC32 |
| - Name: .another.rela.text |
| Type: SHT_RELA |
| Info: .text |
| Relocations: |
| - Offset: 1 |
| Symbol: foo |
| Type: R_X86_64_GOT32 |
| - Name: .rela.text2 |
| Type: SHT_RELA |
| Info: .text2 |
| Relocations: |
| - Offset: 1 |
| Symbol: foo |
| Addend: 2 |
| Type: R_X86_64_PLT32 |
| - Name: .rodata |
| Type: SHT_PROGBITS |
| Flags: [SHF_ALLOC] |
| Size: 4 |
| - Name: .rela.rodata |
| Type: SHT_RELA |
| Info: .rodata |
| Relocations: |
| - Offset: 0 |
| Symbol: foo |
| Type: R_X86_64_NONE |
| Symbols: |
| - Name: foo |
| |
| ## Test that --section works when dumping relocation sections. |
| # RUN: llvm-objdump -r %t.o --section=.another.rela.text --section=.rela.rodata \ |
| # RUN: | FileCheck %s --check-prefix=DUMP-RELOCS --implicit-check-not=R_X86_64 \ |
| # RUN: --implicit-check-not="RELOCATION RECORDS" |
| |
| # DUMP-RELOCS: RELOCATION RECORDS FOR [.text]: |
| # DUMP-RELOCS: 00000001 R_X86_64_GOT32 foo |
| # DUMP-RELOCS: RELOCATION RECORDS FOR [.rodata]: |
| # DUMP-RELOCS: 00000000 R_X86_64_NONE foo |
| |
| ## Test that --section works with --full-contents. |
| # RUN: llvm-objdump -s %t.o --section=.text --section=.rela.text2 \ |
| # RUN: | FileCheck %s --check-prefix=CONTENTS \ |
| # RUN: --implicit-check-not=.text \ |
| # RUN: --implicit-check-not=.rodata |
| |
| # CONTENTS: Contents of section .text: |
| # CONTENTS: Contents of section .rela.text2: |