| ## Verify that llvm-readobj can dump files with stabs symbols in a sorted order. |
| |
| # RUN: yaml2obj --docnum=1 %s -o %t |
| |
| # RUN: not llvm-readobj --syms --sort-symbols=foo %t 2>&1 | FileCheck %s --check-prefix ERR-KEY |
| # RUN: not llvm-readobj --syms --sort-symbols=,, %t 2>&1 | FileCheck %s --check-prefix ERR-KEY-EMPT |
| |
| # RUN: llvm-readobj --syms --sort-symbols=type,name %t | FileCheck %s --check-prefix TYPE-NAME |
| # RUN: llvm-readobj --syms --sort-symbols=name,type %t | FileCheck %s --check-prefix NAME-TYPE |
| # RUN: llvm-readobj --syms --sort-symbols=type %t | FileCheck %s --check-prefix TYPE-ONLY |
| |
| # ERR-KEY: error: --sort-symbols value should be 'name' or 'type', but was 'foo' |
| # ERR-KEY-EMPT: error: --sort-symbols value should be 'name' or 'type', but was '' |
| |
| # TYPE-NAME: Name: _a (19) |
| # TYPE-NAME-NEXT: Type: Section (0xE) |
| # TYPE-NAME: Name: _d (10) |
| # TYPE-NAME-NEXT: Type: Section (0xE) |
| # TYPE-NAME: Name: _f (7) |
| # TYPE-NAME-NEXT: Type: SymDebugTable (0x2E) |
| # TYPE-NAME: Name: _z (1) |
| # TYPE-NAME-NEXT: Type: SymDebugTable (0x2E) |
| # TYPE-NAME: Name: _c (13) |
| # TYPE-NAME-NEXT: Type: SymDebugTable (0x64) |
| # TYPE-NAME: Name: _g (4) |
| # TYPE-NAME-NEXT: Type: SymDebugTable (0x64) |
| # TYPE-NAME: Name: _b (16) |
| # TYPE-NAME-NEXT: Type: SymDebugTable (0x66) |
| # TYPE-NAME: Name: _d2 (22) |
| # TYPE-NAME-NEXT: Type: SymDebugTable (0x66) |
| |
| # NAME-TYPE: Name: _a (19) |
| # NAME-TYPE-NEXT: Type: Section (0xE) |
| # NAME-TYPE: Name: _b (16) |
| # NAME-TYPE-NEXT: Type: SymDebugTable (0x66) |
| # NAME-TYPE: Name: _c (13) |
| # NAME-TYPE-NEXT: Type: SymDebugTable (0x64) |
| # NAME-TYPE: Name: _d (10) |
| # NAME-TYPE-NEXT: Type: Section (0xE) |
| # NAME-TYPE: Name: _d2 (22) |
| # NAME-TYPE-NEXT: Type: SymDebugTable (0x66) |
| # NAME-TYPE: Name: _f (7) |
| # NAME-TYPE-NEXT: Type: SymDebugTable (0x2E) |
| # NAME-TYPE: Name: _g (4) |
| # NAME-TYPE-NEXT: Type: SymDebugTable (0x64) |
| # NAME-TYPE: Name: _z (1) |
| # NAME-TYPE-NEXT: Type: SymDebugTable (0x2E) |
| |
| # TYPE-ONLY: Name: _d (10) |
| # TYPE-ONLY-NEXT: Type: Section (0xE) |
| # TYPE-ONLY: Name: _a (19) |
| # TYPE-ONLY-NEXT: Type: Section (0xE) |
| # TYPE-ONLY: Name: _f (7) |
| # TYPE-ONLY-NEXT: Type: SymDebugTable (0x2E) |
| # TYPE-ONLY: Name: _z (1) |
| # TYPE-ONLY-NEXT: Type: SymDebugTable (0x2E) |
| # TYPE-ONLY: Name: _g (4) |
| # TYPE-ONLY-NEXT: Type: SymDebugTable (0x64) |
| # TYPE-ONLY: Name: _c (13) |
| # TYPE-ONLY-NEXT: Type: SymDebugTable (0x64) |
| # TYPE-ONLY: Name: _d2 (22) |
| # TYPE-ONLY-NEXT: Type: SymDebugTable (0x66) |
| # TYPE-ONLY: Name: _b (16) |
| # TYPE-ONLY-NEXT: Type: SymDebugTable (0x66) |
| |
| --- !mach-o |
| FileHeader: |
| magic: 0xFEEDFACF |
| cputype: 0x1000007 |
| cpusubtype: 0x3 |
| filetype: 0x1 |
| ncmds: 3 |
| sizeofcmds: 496 |
| flags: 0x2000 |
| reserved: 0x0 |
| LoadCommands: |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 392 |
| segname: '' |
| vmaddr: 0 |
| vmsize: 32 |
| fileoff: 528 |
| filesize: 28 |
| maxprot: 7 |
| initprot: 7 |
| nsects: 4 |
| flags: 0 |
| Sections: |
| - sectname: __text |
| segname: __TEXT |
| addr: 0x0 |
| size: 9 |
| offset: 0x210 |
| align: 0 |
| reloff: 0x230 |
| nreloc: 1 |
| flags: 0x80000000 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: '000000000000000000' |
| relocations: |
| - address: 0x0 |
| symbolnum: 7 |
| pcrel: false |
| length: 3 |
| extern: true |
| type: 0 |
| scattered: false |
| value: 0 |
| - sectname: more_data |
| segname: __DATA |
| addr: 0x9 |
| size: 8 |
| offset: 0x219 |
| align: 0 |
| reloff: 0x0 |
| nreloc: 0 |
| flags: 0x0 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: 7B00000000000000 |
| - sectname: __data |
| segname: __DATA |
| addr: 0x11 |
| size: 11 |
| offset: 0x221 |
| align: 0 |
| reloff: 0x0 |
| nreloc: 0 |
| flags: 0x0 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: 7B00000000000000000000 |
| - sectname: __common |
| segname: __DATA |
| addr: 0x1C |
| size: 4 |
| offset: 0x0 |
| align: 2 |
| reloff: 0x0 |
| nreloc: 0 |
| flags: 0x1 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| - cmd: LC_SYMTAB |
| cmdsize: 24 |
| symoff: 568 |
| nsyms: 8 |
| stroff: 696 |
| strsize: 32 |
| - cmd: LC_DYSYMTAB |
| cmdsize: 80 |
| ilocalsym: 0 |
| nlocalsym: 7 |
| iextdefsym: 7 |
| nextdefsym: 0 |
| iundefsym: 7 |
| nundefsym: 1 |
| tocoff: 0 |
| ntoc: 0 |
| modtaboff: 0 |
| nmodtab: 0 |
| extrefsymoff: 0 |
| nextrefsyms: 0 |
| indirectsymoff: 0 |
| nindirectsyms: 0 |
| extreloff: 0 |
| nextrel: 0 |
| locreloff: 0 |
| nlocrel: 0 |
| LinkEditData: |
| NameList: |
| - n_strx: 4 |
| n_type: 0x64 |
| n_sect: 1 |
| n_desc: 0 |
| n_value: 0 |
| - n_strx: 10 |
| n_type: 0xE |
| n_sect: 1 |
| n_desc: 0 |
| n_value: 8 |
| - n_strx: 22 |
| n_type: 0x66 |
| n_sect: 1 |
| n_desc: 0 |
| n_value: 8 |
| - n_strx: 16 |
| n_type: 0x66 |
| n_sect: 2 |
| n_desc: 0 |
| n_value: 9 |
| - n_strx: 19 |
| n_type: 0xE |
| n_sect: 3 |
| n_desc: 0 |
| n_value: 17 |
| - n_strx: 13 |
| n_type: 0x64 |
| n_sect: 4 |
| n_desc: 0 |
| n_value: 28 |
| - n_strx: 7 |
| n_type: 0x2E |
| n_sect: 3 |
| n_desc: 0 |
| n_value: 25 |
| - n_strx: 1 |
| n_type: 0x2E |
| n_sect: 0 |
| n_desc: 0 |
| n_value: 0 |
| StringTable: |
| - '' |
| - _z |
| - _g |
| - _f |
| - _d |
| - _c |
| - _b |
| - _a |
| - _d2 |
| - '' |
| - '' |
| - '' |
| - '' |
| - '' |
| - '' |
| ... |