| # Overlapping PT_LOAD and PT_TLS segments should be able to exist side by side. |
| |
| # RUN: yaml2obj %s -o %t |
| # RUN: lldb-test object-file %t | FileCheck %s |
| # RUN: %lldb %t -o "image lookup -a 0x1000" -b | FileCheck --check-prefix=LOOKUP %s |
| |
| # CHECK: Index: 0 |
| # CHECK-NEXT: ID: 0xffffffffffffffff |
| # CHECK-NEXT: Name: PT_LOAD[0] |
| # CHECK-NEXT: Type: container |
| # CHECK-NEXT: Permissions: rw- |
| # CHECK-NEXT: Thread specific: no |
| # CHECK-NEXT: VM address: 0x1000 |
| # CHECK-NEXT: VM size: 16 |
| # CHECK-NEXT: File size: 16 |
| # CHECK-NEXT: Showing 1 subsections |
| |
| # CHECK: Index: 1 |
| # CHECK-NEXT: ID: 0xfffffffffffffffe |
| # CHECK-NEXT: Name: PT_TLS[0] |
| # CHECK-NEXT: Type: container |
| # CHECK-NEXT: Permissions: rw- |
| # CHECK-NEXT: Thread specific: yes |
| # CHECK-NEXT: VM address: 0x1000 |
| # CHECK-NEXT: VM size: 16 |
| # CHECK-NEXT: File size: 0 |
| # CHECK-NEXT: Showing 1 subsections |
| |
| # LOOKUP-LABEL: image lookup -a 0x1000 |
| # LOOKUP: Address: {{.*}}.PT_LOAD[0]..data + 0) |
| |
| !ELF |
| FileHeader: |
| Class: ELFCLASS32 |
| Data: ELFDATA2LSB |
| Type: ET_EXEC |
| Machine: EM_ARM |
| Sections: |
| - Name: .data |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_WRITE ] |
| Address: 0x1000 |
| AddressAlign: 0x4 |
| Size: 0x10 |
| - Name: .tbss |
| Type: SHT_NOBITS |
| Flags: [ SHF_ALLOC, SHF_WRITE, SHF_TLS ] |
| Address: 0x1000 |
| AddressAlign: 0x4 |
| Size: 0x10 |
| ProgramHeaders: |
| - Type: PT_LOAD |
| Flags: [ PF_W, PF_R ] |
| VAddr: 0x1000 |
| Align: 0x4 |
| FirstSec: .data |
| LastSec: .data |
| - Type: PT_TLS |
| Flags: [ PF_R, PF_W ] |
| VAddr: 0x1000 |
| Align: 0x4 |
| FirstSec: .tbss |
| LastSec: .tbss |