| ## This test checks -d disassembles an ELF file without section headers. |
| ## Such files include kcore files extracted by linux perf tools, or |
| ## executables with section headers stripped by e.g. |
| ## llvm-strip --strip-sections. |
| |
| # RUN: yaml2obj %s -o %t |
| # RUN: llvm-objdump -d %t | FileCheck %s |
| |
| # CHECK: Disassembly of section PT_LOAD#0: |
| # CHECK-EMPTY: |
| # CHECK-NEXT: <PT_LOAD#0>: |
| # CHECK-NEXT: 55 pushq %rbp |
| # CHECK-NEXT: 48 89 e5 movq %rsp, %rbp |
| # CHECK-NEXT: 0f 1f 40 00 nopl (%rax) |
| # CHECK-NEXT: 5d popq %rbp |
| # CHECK-NEXT: c3 retq |
| |
| ## Check disassembly with an address range. |
| # RUN: llvm-objdump -d --start-address=0xffffffff00000000 \ |
| # RUN: --stop-address=0xffffffff00000004 %t 2>&1 | \ |
| # RUN: FileCheck %s --check-prefix RANGE |
| |
| # RANGE: no section overlaps the range |
| # RANGE-EMPTY: |
| # RANGE-NEXT: Disassembly of section PT_LOAD#0: |
| # RANGE-EMPTY: |
| # RANGE-NEXT: <PT_LOAD#0>: |
| # RANGE-NEXT: 55 pushq %rbp |
| # RANGE-NEXT: 48 89 e5 movq %rsp, %rbp |
| # RANGE-EMPTY: |
| |
| !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_CORE |
| Machine: EM_X86_64 |
| Sections: |
| - Type: SectionHeaderTable |
| NoHeaders: true |
| - Type: Fill |
| Name: code |
| Pattern: "554889E50F1F40005DC3" |
| Size: 10 |
| Offset: 0x1000 |
| ProgramHeaders: |
| - Type: PT_LOAD |
| Flags: [ PF_X ] |
| VAddr: 0xFFFFFFFF00000000 |
| FirstSec: code |
| LastSec: code |