| ## Test various details of llvm-objdump -h/--section-headers for XCOFF. |
| |
| ## Check the -h/--section-headers option prints section headers correctly. |
| # RUN: yaml2obj %s --docnum=1 -o %t-basic.o |
| # RUN: llvm-objdump --section-headers %t-basic.o | FileCheck %s |
| |
| # CHECK: Sections: |
| # CHECK-NEXT: Idx Name Size VMA Type |
| # CHECK-NEXT: 0 .text 00000008 00000008 TEXT |
| # CHECK-NEXT: 1 .data 00000004 00000000 DATA |
| # CHECK-NEXT: 2 .bss 00000000 00000010 BSS |
| # CHECK-NEXT: 3 .tdata 00000004 00000000 DATA |
| # CHECK-NEXT: 4 .tbss 00000000 00000000 BSS |
| # CHECK-NEXT: 5 .dwline 00000046 00000000 DEBUG |
| # CHECK-NEXT: 6 .debug 00000046 00000000 DEBUG |
| |
| --- !XCOFF |
| FileHeader: |
| MagicNumber: 0x1DF |
| Sections: |
| - Name: .text |
| Address: 0x8 |
| Size: 0x8 |
| Flags: [ STYP_TEXT ] |
| - Name: .data |
| Size: 0x4 |
| Flags: [ STYP_DATA ] |
| - Name: .bss |
| Size: 0x0 |
| Address: 0x10 |
| Flags: [ STYP_BSS ] |
| - Name: .tdata |
| Size: 0x4 |
| Flags: [ STYP_TDATA ] |
| - Name: .tbss |
| Size: 0x0 |
| Flags: [ STYP_TBSS ] |
| - Name: .dwline |
| Size: 0x46 |
| Flags: [ STYP_DWARF ] |
| - Name: .debug |
| Size: 0x46 |
| Flags: [ STYP_DEBUG ] |
| |
| ## Check the -h/--section-headers option prints long section names. |
| # RUN: yaml2obj %s --docnum=2 -o %t-longname.o |
| # RUN: llvm-objdump --section-headers %t-longname.o \ |
| # RUN: | FileCheck %s --check-prefix=LONG |
| |
| # LONG: Sections: |
| # LONG-NEXT: Idx Name Size VMA Type |
| # LONG-NEXT: 0 .dwarnge 00000004 00000000 |
| # LONG-NEXT: 1 .dwpbnms 00000004 00000000 |
| # LONG-NEXT: 2 .dwpbtyp 00000004 00000000 |
| |
| --- !XCOFF |
| FileHeader: |
| MagicNumber: 0x1DF |
| Sections: |
| - Name: .dwarnge |
| Size: 0x4 |
| Flags: [ STYP_PAD ] |
| - Name: .dwpbnms |
| Size: 0x4 |
| Flags: [ STYP_PAD ] |
| - Name: .dwpbtyp |
| Size: 0x4 |
| Flags: [ STYP_PAD ] |
| |
| ## Truncate the file to end before the section header table ends. |
| # RUN: yaml2obj %s --docnum=3 -o %t-truncate.o |
| # RUN: %python -c "with open('%/t-truncate.o', 'r+b') as input: input.truncate(20)" |
| # RUN: not llvm-objdump --section-headers %t-truncate.o 2>&1 \ |
| # RUN: | FileCheck --check-prefix=ERROR %s |
| |
| # ERROR: The end of the file was unexpectedly encountered: section headers with offset 0x14 and size 0x28 go past the end of the file |
| |
| --- !XCOFF |
| FileHeader: |
| MagicNumber: 0x1DF |
| Sections: |
| - Name: .text |
| Size: 0x8 |
| Flags: [ STYP_TEXT ] |