| !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_EXEC |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| # This section contents exceeds default IHex line length of 16 bytes |
| # so we expect two lines created for it. |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| Address: 0x0 |
| AddressAlign: 0x8 |
| Content: "000102030405060708090A0B0C0D0E0F1011121314" |
| - Name: .data |
| # This section overlap 16-bit segment boundary, so we expect |
| # additional 'SegmentAddr' record of type '02' |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| Content: "3031323334353637383940" |
| Address: 0xFFF8 |
| AddressAlign: 0x8 |
| - Name: .data2 |
| # Previous section '.data' should have forced creation of |
| # 'SegmentAddr'(02) record with segment address of 0x10000, |
| # so this section should have address of 0x100. |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| Content: "40414243" |
| Address: 0x10100 |
| AddressAlign: 0x8 |
| - Name: .data3 |
| # The last section not only overlaps segment boundary, but |
| # also has linear address which doesn't fit 20 bits. The |
| # following records should be created: |
| # 'SegmentAddr'(02) record with address 0x0 |
| # 'ExtendedAddr'(04) record with address 0x100000 |
| # 'Data'(00) record with 8 bytes of section data |
| # 'SegmentAddr'(02) record with address 0x10000 |
| # 'Data'(00) record with remaining 3 bytes of data. |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| Content: "5051525354555657585960" |
| Address: 0x10FFF8 |
| AddressAlign: 0x8 |
| - Name: .bss |
| # NOBITS sections are not written to IHex |
| Type: SHT_NOBITS |
| Flags: [ SHF_ALLOC ] |
| Address: 0x10100 |
| Size: 0x1000 |
| AddressAlign: 0x8 |
| - Name: .dummy |
| # Non-allocatable sections are not written to IHex |
| Type: SHT_PROGBITS |
| Flags: [ ] |
| Address: 0x20FFF8 |
| Size: 65536 |
| AddressAlign: 0x8 |