1*1ae449f9SVy Nguyen## Verify that llvm-readobj can dump files with stabs symbols in a sorted order. 2*1ae449f9SVy Nguyen 3*1ae449f9SVy Nguyen# RUN: yaml2obj --docnum=1 %s -o %t 4*1ae449f9SVy Nguyen 5*1ae449f9SVy Nguyen# RUN: not llvm-readobj --syms --sort-symbols=foo %t 2>&1 | FileCheck %s --check-prefix ERR-KEY 6*1ae449f9SVy Nguyen# RUN: not llvm-readobj --syms --sort-symbols=,, %t 2>&1 | FileCheck %s --check-prefix ERR-KEY-EMPT 7*1ae449f9SVy Nguyen 8*1ae449f9SVy Nguyen# RUN: llvm-readobj --syms --sort-symbols=type,name %t | FileCheck %s --check-prefix TYPE-NAME 9*1ae449f9SVy Nguyen# RUN: llvm-readobj --syms --sort-symbols=name,type %t | FileCheck %s --check-prefix NAME-TYPE 10*1ae449f9SVy Nguyen# RUN: llvm-readobj --syms --sort-symbols=type %t | FileCheck %s --check-prefix TYPE-ONLY 11*1ae449f9SVy Nguyen 12*1ae449f9SVy Nguyen# ERR-KEY: error: --sort-symbols value should be 'name' or 'type', but was 'foo' 13*1ae449f9SVy Nguyen# ERR-KEY-EMPT: error: --sort-symbols value should be 'name' or 'type', but was '' 14*1ae449f9SVy Nguyen 15*1ae449f9SVy Nguyen# TYPE-NAME: Name: _a (19) 16*1ae449f9SVy Nguyen# TYPE-NAME-NEXT: Type: Section (0xE) 17*1ae449f9SVy Nguyen# TYPE-NAME: Name: _d (10) 18*1ae449f9SVy Nguyen# TYPE-NAME-NEXT: Type: Section (0xE) 19*1ae449f9SVy Nguyen# TYPE-NAME: Name: _f (7) 20*1ae449f9SVy Nguyen# TYPE-NAME-NEXT: Type: SymDebugTable (0x2E) 21*1ae449f9SVy Nguyen# TYPE-NAME: Name: _z (1) 22*1ae449f9SVy Nguyen# TYPE-NAME-NEXT: Type: SymDebugTable (0x2E) 23*1ae449f9SVy Nguyen# TYPE-NAME: Name: _c (13) 24*1ae449f9SVy Nguyen# TYPE-NAME-NEXT: Type: SymDebugTable (0x64) 25*1ae449f9SVy Nguyen# TYPE-NAME: Name: _g (4) 26*1ae449f9SVy Nguyen# TYPE-NAME-NEXT: Type: SymDebugTable (0x64) 27*1ae449f9SVy Nguyen# TYPE-NAME: Name: _b (16) 28*1ae449f9SVy Nguyen# TYPE-NAME-NEXT: Type: SymDebugTable (0x66) 29*1ae449f9SVy Nguyen# TYPE-NAME: Name: _d2 (22) 30*1ae449f9SVy Nguyen# TYPE-NAME-NEXT: Type: SymDebugTable (0x66) 31*1ae449f9SVy Nguyen 32*1ae449f9SVy Nguyen# NAME-TYPE: Name: _a (19) 33*1ae449f9SVy Nguyen# NAME-TYPE-NEXT: Type: Section (0xE) 34*1ae449f9SVy Nguyen# NAME-TYPE: Name: _b (16) 35*1ae449f9SVy Nguyen# NAME-TYPE-NEXT: Type: SymDebugTable (0x66) 36*1ae449f9SVy Nguyen# NAME-TYPE: Name: _c (13) 37*1ae449f9SVy Nguyen# NAME-TYPE-NEXT: Type: SymDebugTable (0x64) 38*1ae449f9SVy Nguyen# NAME-TYPE: Name: _d (10) 39*1ae449f9SVy Nguyen# NAME-TYPE-NEXT: Type: Section (0xE) 40*1ae449f9SVy Nguyen# NAME-TYPE: Name: _d2 (22) 41*1ae449f9SVy Nguyen# NAME-TYPE-NEXT: Type: SymDebugTable (0x66) 42*1ae449f9SVy Nguyen# NAME-TYPE: Name: _f (7) 43*1ae449f9SVy Nguyen# NAME-TYPE-NEXT: Type: SymDebugTable (0x2E) 44*1ae449f9SVy Nguyen# NAME-TYPE: Name: _g (4) 45*1ae449f9SVy Nguyen# NAME-TYPE-NEXT: Type: SymDebugTable (0x64) 46*1ae449f9SVy Nguyen# NAME-TYPE: Name: _z (1) 47*1ae449f9SVy Nguyen# NAME-TYPE-NEXT: Type: SymDebugTable (0x2E) 48*1ae449f9SVy Nguyen 49*1ae449f9SVy Nguyen# TYPE-ONLY: Name: _d (10) 50*1ae449f9SVy Nguyen# TYPE-ONLY-NEXT: Type: Section (0xE) 51*1ae449f9SVy Nguyen# TYPE-ONLY: Name: _a (19) 52*1ae449f9SVy Nguyen# TYPE-ONLY-NEXT: Type: Section (0xE) 53*1ae449f9SVy Nguyen# TYPE-ONLY: Name: _f (7) 54*1ae449f9SVy Nguyen# TYPE-ONLY-NEXT: Type: SymDebugTable (0x2E) 55*1ae449f9SVy Nguyen# TYPE-ONLY: Name: _z (1) 56*1ae449f9SVy Nguyen# TYPE-ONLY-NEXT: Type: SymDebugTable (0x2E) 57*1ae449f9SVy Nguyen# TYPE-ONLY: Name: _g (4) 58*1ae449f9SVy Nguyen# TYPE-ONLY-NEXT: Type: SymDebugTable (0x64) 59*1ae449f9SVy Nguyen# TYPE-ONLY: Name: _c (13) 60*1ae449f9SVy Nguyen# TYPE-ONLY-NEXT: Type: SymDebugTable (0x64) 61*1ae449f9SVy Nguyen# TYPE-ONLY: Name: _d2 (22) 62*1ae449f9SVy Nguyen# TYPE-ONLY-NEXT: Type: SymDebugTable (0x66) 63*1ae449f9SVy Nguyen# TYPE-ONLY: Name: _b (16) 64*1ae449f9SVy Nguyen# TYPE-ONLY-NEXT: Type: SymDebugTable (0x66) 65*1ae449f9SVy Nguyen 66*1ae449f9SVy Nguyen--- !mach-o 67*1ae449f9SVy NguyenFileHeader: 68*1ae449f9SVy Nguyen magic: 0xFEEDFACF 69*1ae449f9SVy Nguyen cputype: 0x1000007 70*1ae449f9SVy Nguyen cpusubtype: 0x3 71*1ae449f9SVy Nguyen filetype: 0x1 72*1ae449f9SVy Nguyen ncmds: 3 73*1ae449f9SVy Nguyen sizeofcmds: 496 74*1ae449f9SVy Nguyen flags: 0x2000 75*1ae449f9SVy Nguyen reserved: 0x0 76*1ae449f9SVy NguyenLoadCommands: 77*1ae449f9SVy Nguyen - cmd: LC_SEGMENT_64 78*1ae449f9SVy Nguyen cmdsize: 392 79*1ae449f9SVy Nguyen segname: '' 80*1ae449f9SVy Nguyen vmaddr: 0 81*1ae449f9SVy Nguyen vmsize: 32 82*1ae449f9SVy Nguyen fileoff: 528 83*1ae449f9SVy Nguyen filesize: 28 84*1ae449f9SVy Nguyen maxprot: 7 85*1ae449f9SVy Nguyen initprot: 7 86*1ae449f9SVy Nguyen nsects: 4 87*1ae449f9SVy Nguyen flags: 0 88*1ae449f9SVy Nguyen Sections: 89*1ae449f9SVy Nguyen - sectname: __text 90*1ae449f9SVy Nguyen segname: __TEXT 91*1ae449f9SVy Nguyen addr: 0x0 92*1ae449f9SVy Nguyen size: 9 93*1ae449f9SVy Nguyen offset: 0x210 94*1ae449f9SVy Nguyen align: 0 95*1ae449f9SVy Nguyen reloff: 0x230 96*1ae449f9SVy Nguyen nreloc: 1 97*1ae449f9SVy Nguyen flags: 0x80000000 98*1ae449f9SVy Nguyen reserved1: 0x0 99*1ae449f9SVy Nguyen reserved2: 0x0 100*1ae449f9SVy Nguyen reserved3: 0x0 101*1ae449f9SVy Nguyen content: '000000000000000000' 102*1ae449f9SVy Nguyen relocations: 103*1ae449f9SVy Nguyen - address: 0x0 104*1ae449f9SVy Nguyen symbolnum: 7 105*1ae449f9SVy Nguyen pcrel: false 106*1ae449f9SVy Nguyen length: 3 107*1ae449f9SVy Nguyen extern: true 108*1ae449f9SVy Nguyen type: 0 109*1ae449f9SVy Nguyen scattered: false 110*1ae449f9SVy Nguyen value: 0 111*1ae449f9SVy Nguyen - sectname: more_data 112*1ae449f9SVy Nguyen segname: __DATA 113*1ae449f9SVy Nguyen addr: 0x9 114*1ae449f9SVy Nguyen size: 8 115*1ae449f9SVy Nguyen offset: 0x219 116*1ae449f9SVy Nguyen align: 0 117*1ae449f9SVy Nguyen reloff: 0x0 118*1ae449f9SVy Nguyen nreloc: 0 119*1ae449f9SVy Nguyen flags: 0x0 120*1ae449f9SVy Nguyen reserved1: 0x0 121*1ae449f9SVy Nguyen reserved2: 0x0 122*1ae449f9SVy Nguyen reserved3: 0x0 123*1ae449f9SVy Nguyen content: 7B00000000000000 124*1ae449f9SVy Nguyen - sectname: __data 125*1ae449f9SVy Nguyen segname: __DATA 126*1ae449f9SVy Nguyen addr: 0x11 127*1ae449f9SVy Nguyen size: 11 128*1ae449f9SVy Nguyen offset: 0x221 129*1ae449f9SVy Nguyen align: 0 130*1ae449f9SVy Nguyen reloff: 0x0 131*1ae449f9SVy Nguyen nreloc: 0 132*1ae449f9SVy Nguyen flags: 0x0 133*1ae449f9SVy Nguyen reserved1: 0x0 134*1ae449f9SVy Nguyen reserved2: 0x0 135*1ae449f9SVy Nguyen reserved3: 0x0 136*1ae449f9SVy Nguyen content: 7B00000000000000000000 137*1ae449f9SVy Nguyen - sectname: __common 138*1ae449f9SVy Nguyen segname: __DATA 139*1ae449f9SVy Nguyen addr: 0x1C 140*1ae449f9SVy Nguyen size: 4 141*1ae449f9SVy Nguyen offset: 0x0 142*1ae449f9SVy Nguyen align: 2 143*1ae449f9SVy Nguyen reloff: 0x0 144*1ae449f9SVy Nguyen nreloc: 0 145*1ae449f9SVy Nguyen flags: 0x1 146*1ae449f9SVy Nguyen reserved1: 0x0 147*1ae449f9SVy Nguyen reserved2: 0x0 148*1ae449f9SVy Nguyen reserved3: 0x0 149*1ae449f9SVy Nguyen - cmd: LC_SYMTAB 150*1ae449f9SVy Nguyen cmdsize: 24 151*1ae449f9SVy Nguyen symoff: 568 152*1ae449f9SVy Nguyen nsyms: 8 153*1ae449f9SVy Nguyen stroff: 696 154*1ae449f9SVy Nguyen strsize: 32 155*1ae449f9SVy Nguyen - cmd: LC_DYSYMTAB 156*1ae449f9SVy Nguyen cmdsize: 80 157*1ae449f9SVy Nguyen ilocalsym: 0 158*1ae449f9SVy Nguyen nlocalsym: 7 159*1ae449f9SVy Nguyen iextdefsym: 7 160*1ae449f9SVy Nguyen nextdefsym: 0 161*1ae449f9SVy Nguyen iundefsym: 7 162*1ae449f9SVy Nguyen nundefsym: 1 163*1ae449f9SVy Nguyen tocoff: 0 164*1ae449f9SVy Nguyen ntoc: 0 165*1ae449f9SVy Nguyen modtaboff: 0 166*1ae449f9SVy Nguyen nmodtab: 0 167*1ae449f9SVy Nguyen extrefsymoff: 0 168*1ae449f9SVy Nguyen nextrefsyms: 0 169*1ae449f9SVy Nguyen indirectsymoff: 0 170*1ae449f9SVy Nguyen nindirectsyms: 0 171*1ae449f9SVy Nguyen extreloff: 0 172*1ae449f9SVy Nguyen nextrel: 0 173*1ae449f9SVy Nguyen locreloff: 0 174*1ae449f9SVy Nguyen nlocrel: 0 175*1ae449f9SVy NguyenLinkEditData: 176*1ae449f9SVy Nguyen NameList: 177*1ae449f9SVy Nguyen - n_strx: 4 178*1ae449f9SVy Nguyen n_type: 0x64 179*1ae449f9SVy Nguyen n_sect: 1 180*1ae449f9SVy Nguyen n_desc: 0 181*1ae449f9SVy Nguyen n_value: 0 182*1ae449f9SVy Nguyen - n_strx: 10 183*1ae449f9SVy Nguyen n_type: 0xE 184*1ae449f9SVy Nguyen n_sect: 1 185*1ae449f9SVy Nguyen n_desc: 0 186*1ae449f9SVy Nguyen n_value: 8 187*1ae449f9SVy Nguyen - n_strx: 22 188*1ae449f9SVy Nguyen n_type: 0x66 189*1ae449f9SVy Nguyen n_sect: 1 190*1ae449f9SVy Nguyen n_desc: 0 191*1ae449f9SVy Nguyen n_value: 8 192*1ae449f9SVy Nguyen - n_strx: 16 193*1ae449f9SVy Nguyen n_type: 0x66 194*1ae449f9SVy Nguyen n_sect: 2 195*1ae449f9SVy Nguyen n_desc: 0 196*1ae449f9SVy Nguyen n_value: 9 197*1ae449f9SVy Nguyen - n_strx: 19 198*1ae449f9SVy Nguyen n_type: 0xE 199*1ae449f9SVy Nguyen n_sect: 3 200*1ae449f9SVy Nguyen n_desc: 0 201*1ae449f9SVy Nguyen n_value: 17 202*1ae449f9SVy Nguyen - n_strx: 13 203*1ae449f9SVy Nguyen n_type: 0x64 204*1ae449f9SVy Nguyen n_sect: 4 205*1ae449f9SVy Nguyen n_desc: 0 206*1ae449f9SVy Nguyen n_value: 28 207*1ae449f9SVy Nguyen - n_strx: 7 208*1ae449f9SVy Nguyen n_type: 0x2E 209*1ae449f9SVy Nguyen n_sect: 3 210*1ae449f9SVy Nguyen n_desc: 0 211*1ae449f9SVy Nguyen n_value: 25 212*1ae449f9SVy Nguyen - n_strx: 1 213*1ae449f9SVy Nguyen n_type: 0x2E 214*1ae449f9SVy Nguyen n_sect: 0 215*1ae449f9SVy Nguyen n_desc: 0 216*1ae449f9SVy Nguyen n_value: 0 217*1ae449f9SVy Nguyen StringTable: 218*1ae449f9SVy Nguyen - '' 219*1ae449f9SVy Nguyen - _z 220*1ae449f9SVy Nguyen - _g 221*1ae449f9SVy Nguyen - _f 222*1ae449f9SVy Nguyen - _d 223*1ae449f9SVy Nguyen - _c 224*1ae449f9SVy Nguyen - _b 225*1ae449f9SVy Nguyen - _a 226*1ae449f9SVy Nguyen - _d2 227*1ae449f9SVy Nguyen - '' 228*1ae449f9SVy Nguyen - '' 229*1ae449f9SVy Nguyen - '' 230*1ae449f9SVy Nguyen - '' 231*1ae449f9SVy Nguyen - '' 232*1ae449f9SVy Nguyen - '' 233*1ae449f9SVy Nguyen... 234