1*53ee8cc1Swenshuai.xi/* Table of DBX symbol codes for the GNU system. 2*53ee8cc1Swenshuai.xi Copyright (C) 1988, 1997 Free Software Foundation, Inc. 3*53ee8cc1Swenshuai.xi This file is part of the GNU C Library. 4*53ee8cc1Swenshuai.xi 5*53ee8cc1Swenshuai.xi The GNU C Library is free software; you can redistribute it and/or 6*53ee8cc1Swenshuai.xi modify it under the terms of the GNU Lesser General Public 7*53ee8cc1Swenshuai.xi License as published by the Free Software Foundation; either 8*53ee8cc1Swenshuai.xi version 2.1 of the License, or (at your option) any later version. 9*53ee8cc1Swenshuai.xi 10*53ee8cc1Swenshuai.xi The GNU C Library is distributed in the hope that it will be useful, 11*53ee8cc1Swenshuai.xi but WITHOUT ANY WARRANTY; without even the implied warranty of 12*53ee8cc1Swenshuai.xi MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13*53ee8cc1Swenshuai.xi Lesser General Public License for more details. 14*53ee8cc1Swenshuai.xi 15*53ee8cc1Swenshuai.xi You should have received a copy of the GNU Lesser General Public 16*53ee8cc1Swenshuai.xi License along with the GNU C Library; if not, write to the Free 17*53ee8cc1Swenshuai.xi Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 18*53ee8cc1Swenshuai.xi 02111-1307 USA. */ 19*53ee8cc1Swenshuai.xi 20*53ee8cc1Swenshuai.xi/* This contains contribution from Cygnus Support. */ 21*53ee8cc1Swenshuai.xi 22*53ee8cc1Swenshuai.xi/* Global variable. Only the name is significant. 23*53ee8cc1Swenshuai.xi To find the address, look in the corresponding external symbol. */ 24*53ee8cc1Swenshuai.xi__define_stab (N_GSYM, 0x20, "GSYM") 25*53ee8cc1Swenshuai.xi 26*53ee8cc1Swenshuai.xi/* Function name for BSD Fortran. Only the name is significant. 27*53ee8cc1Swenshuai.xi To find the address, look in the corresponding external symbol. */ 28*53ee8cc1Swenshuai.xi__define_stab (N_FNAME, 0x22, "FNAME") 29*53ee8cc1Swenshuai.xi 30*53ee8cc1Swenshuai.xi/* Function name or text-segment variable for C. Value is its address. 31*53ee8cc1Swenshuai.xi Desc is supposedly starting line number, but GCC doesn't set it 32*53ee8cc1Swenshuai.xi and DBX seems not to miss it. */ 33*53ee8cc1Swenshuai.xi__define_stab (N_FUN, 0x24, "FUN") 34*53ee8cc1Swenshuai.xi 35*53ee8cc1Swenshuai.xi/* Data-segment variable with internal linkage. Value is its address. 36*53ee8cc1Swenshuai.xi "Static Sym". */ 37*53ee8cc1Swenshuai.xi__define_stab (N_STSYM, 0x26, "STSYM") 38*53ee8cc1Swenshuai.xi 39*53ee8cc1Swenshuai.xi/* BSS-segment variable with internal linkage. Value is its address. */ 40*53ee8cc1Swenshuai.xi__define_stab (N_LCSYM, 0x28, "LCSYM") 41*53ee8cc1Swenshuai.xi 42*53ee8cc1Swenshuai.xi/* Name of main routine. Only the name is significant. 43*53ee8cc1Swenshuai.xi This is not used in C. */ 44*53ee8cc1Swenshuai.xi__define_stab (N_MAIN, 0x2a, "MAIN") 45*53ee8cc1Swenshuai.xi 46*53ee8cc1Swenshuai.xi/* Global symbol in Pascal. 47*53ee8cc1Swenshuai.xi Supposedly the value is its line number; I'm skeptical. */ 48*53ee8cc1Swenshuai.xi__define_stab (N_PC, 0x30, "PC") 49*53ee8cc1Swenshuai.xi 50*53ee8cc1Swenshuai.xi/* Number of symbols: 0, files,,funcs,lines according to Ultrix V4.0. */ 51*53ee8cc1Swenshuai.xi__define_stab (N_NSYMS, 0x32, "NSYMS") 52*53ee8cc1Swenshuai.xi 53*53ee8cc1Swenshuai.xi/* "No DST map for sym: name, ,0,type,ignored" according to Ultrix V4.0. */ 54*53ee8cc1Swenshuai.xi__define_stab (N_NOMAP, 0x34, "NOMAP") 55*53ee8cc1Swenshuai.xi 56*53ee8cc1Swenshuai.xi/* New stab from Solaris. I don't know what it means, but it 57*53ee8cc1Swenshuai.xi don't seem to contain useful information. */ 58*53ee8cc1Swenshuai.xi__define_stab (N_OBJ, 0x38, "OBJ") 59*53ee8cc1Swenshuai.xi 60*53ee8cc1Swenshuai.xi/* New stab from Solaris. I don't know what it means, but it 61*53ee8cc1Swenshuai.xi don't seem to contain useful information. Possibly related to the 62*53ee8cc1Swenshuai.xi optimization flags used in this module. */ 63*53ee8cc1Swenshuai.xi__define_stab (N_OPT, 0x3c, "OPT") 64*53ee8cc1Swenshuai.xi 65*53ee8cc1Swenshuai.xi/* Register variable. Value is number of register. */ 66*53ee8cc1Swenshuai.xi__define_stab (N_RSYM, 0x40, "RSYM") 67*53ee8cc1Swenshuai.xi 68*53ee8cc1Swenshuai.xi/* Modula-2 compilation unit. Can someone say what info it contains? */ 69*53ee8cc1Swenshuai.xi__define_stab (N_M2C, 0x42, "M2C") 70*53ee8cc1Swenshuai.xi 71*53ee8cc1Swenshuai.xi/* Line number in text segment. Desc is the line number; 72*53ee8cc1Swenshuai.xi value is corresponding address. */ 73*53ee8cc1Swenshuai.xi__define_stab (N_SLINE, 0x44, "SLINE") 74*53ee8cc1Swenshuai.xi 75*53ee8cc1Swenshuai.xi/* Similar, for data segment. */ 76*53ee8cc1Swenshuai.xi__define_stab (N_DSLINE, 0x46, "DSLINE") 77*53ee8cc1Swenshuai.xi 78*53ee8cc1Swenshuai.xi/* Similar, for bss segment. */ 79*53ee8cc1Swenshuai.xi__define_stab (N_BSLINE, 0x48, "BSLINE") 80*53ee8cc1Swenshuai.xi 81*53ee8cc1Swenshuai.xi/* Sun's source-code browser stabs. ?? Don't know what the fields are. 82*53ee8cc1Swenshuai.xi Supposedly the field is "path to associated .cb file". THIS VALUE 83*53ee8cc1Swenshuai.xi OVERLAPS WITH N_BSLINE! */ 84*53ee8cc1Swenshuai.xi__define_stab (N_BROWS, 0x48, "BROWS") 85*53ee8cc1Swenshuai.xi 86*53ee8cc1Swenshuai.xi/* GNU Modula-2 definition module dependency. Value is the modification time 87*53ee8cc1Swenshuai.xi of the definition file. Other is non-zero if it is imported with the 88*53ee8cc1Swenshuai.xi GNU M2 keyword %INITIALIZE. Perhaps N_M2C can be used if there 89*53ee8cc1Swenshuai.xi are enough empty fields? */ 90*53ee8cc1Swenshuai.xi__define_stab(N_DEFD, 0x4a, "DEFD") 91*53ee8cc1Swenshuai.xi 92*53ee8cc1Swenshuai.xi/* THE FOLLOWING TWO STAB VALUES CONFLICT. Happily, one is for Modula-2 93*53ee8cc1Swenshuai.xi and one is for C++. Still,... */ 94*53ee8cc1Swenshuai.xi/* GNU C++ exception variable. Name is variable name. */ 95*53ee8cc1Swenshuai.xi__define_stab (N_EHDECL, 0x50, "EHDECL") 96*53ee8cc1Swenshuai.xi/* Modula2 info "for imc": name,,0,0,0 according to Ultrix V4.0. */ 97*53ee8cc1Swenshuai.xi__define_stab (N_MOD2, 0x50, "MOD2") 98*53ee8cc1Swenshuai.xi 99*53ee8cc1Swenshuai.xi/* GNU C++ `catch' clause. Value is its address. Desc is nonzero if 100*53ee8cc1Swenshuai.xi this entry is immediately followed by a CAUGHT stab saying what exception 101*53ee8cc1Swenshuai.xi was caught. Multiple CAUGHT stabs means that multiple exceptions 102*53ee8cc1Swenshuai.xi can be caught here. If Desc is 0, it means all exceptions are caught 103*53ee8cc1Swenshuai.xi here. */ 104*53ee8cc1Swenshuai.xi__define_stab (N_CATCH, 0x54, "CATCH") 105*53ee8cc1Swenshuai.xi 106*53ee8cc1Swenshuai.xi/* Structure or union element. Value is offset in the structure. */ 107*53ee8cc1Swenshuai.xi__define_stab (N_SSYM, 0x60, "SSYM") 108*53ee8cc1Swenshuai.xi 109*53ee8cc1Swenshuai.xi/* Name of main source file. 110*53ee8cc1Swenshuai.xi Value is starting text address of the compilation. */ 111*53ee8cc1Swenshuai.xi__define_stab (N_SO, 0x64, "SO") 112*53ee8cc1Swenshuai.xi 113*53ee8cc1Swenshuai.xi/* Automatic variable in the stack. Value is offset from frame pointer. 114*53ee8cc1Swenshuai.xi Also used for type descriptions. */ 115*53ee8cc1Swenshuai.xi__define_stab (N_LSYM, 0x80, "LSYM") 116*53ee8cc1Swenshuai.xi 117*53ee8cc1Swenshuai.xi/* Beginning of an include file. Only Sun uses this. 118*53ee8cc1Swenshuai.xi In an object file, only the name is significant. 119*53ee8cc1Swenshuai.xi The Sun linker puts data into some of the other fields. */ 120*53ee8cc1Swenshuai.xi__define_stab (N_BINCL, 0x82, "BINCL") 121*53ee8cc1Swenshuai.xi 122*53ee8cc1Swenshuai.xi/* Name of sub-source file (#include file). 123*53ee8cc1Swenshuai.xi Value is starting text address of the compilation. */ 124*53ee8cc1Swenshuai.xi__define_stab (N_SOL, 0x84, "SOL") 125*53ee8cc1Swenshuai.xi 126*53ee8cc1Swenshuai.xi/* Parameter variable. Value is offset from argument pointer. 127*53ee8cc1Swenshuai.xi (On most machines the argument pointer is the same as the frame pointer. */ 128*53ee8cc1Swenshuai.xi__define_stab (N_PSYM, 0xa0, "PSYM") 129*53ee8cc1Swenshuai.xi 130*53ee8cc1Swenshuai.xi/* End of an include file. No name. 131*53ee8cc1Swenshuai.xi This and N_BINCL act as brackets around the file's output. 132*53ee8cc1Swenshuai.xi In an object file, there is no significant data in this entry. 133*53ee8cc1Swenshuai.xi The Sun linker puts data into some of the fields. */ 134*53ee8cc1Swenshuai.xi__define_stab (N_EINCL, 0xa2, "EINCL") 135*53ee8cc1Swenshuai.xi 136*53ee8cc1Swenshuai.xi/* Alternate entry point. Value is its address. */ 137*53ee8cc1Swenshuai.xi__define_stab (N_ENTRY, 0xa4, "ENTRY") 138*53ee8cc1Swenshuai.xi 139*53ee8cc1Swenshuai.xi/* Beginning of lexical block. 140*53ee8cc1Swenshuai.xi The desc is the nesting level in lexical blocks. 141*53ee8cc1Swenshuai.xi The value is the address of the start of the text for the block. 142*53ee8cc1Swenshuai.xi The variables declared inside the block *precede* the N_LBRAC symbol. */ 143*53ee8cc1Swenshuai.xi__define_stab (N_LBRAC, 0xc0, "LBRAC") 144*53ee8cc1Swenshuai.xi 145*53ee8cc1Swenshuai.xi/* Place holder for deleted include file. Replaces a N_BINCL and everything 146*53ee8cc1Swenshuai.xi up to the corresponding N_EINCL. The Sun linker generates these when 147*53ee8cc1Swenshuai.xi it finds multiple identical copies of the symbols from an include file. 148*53ee8cc1Swenshuai.xi This appears only in output from the Sun linker. */ 149*53ee8cc1Swenshuai.xi__define_stab (N_EXCL, 0xc2, "EXCL") 150*53ee8cc1Swenshuai.xi 151*53ee8cc1Swenshuai.xi/* Modula-2 scope information. Can someone say what info it contains? */ 152*53ee8cc1Swenshuai.xi__define_stab (N_SCOPE, 0xc4, "SCOPE") 153*53ee8cc1Swenshuai.xi 154*53ee8cc1Swenshuai.xi/* End of a lexical block. Desc matches the N_LBRAC's desc. 155*53ee8cc1Swenshuai.xi The value is the address of the end of the text for the block. */ 156*53ee8cc1Swenshuai.xi__define_stab (N_RBRAC, 0xe0, "RBRAC") 157*53ee8cc1Swenshuai.xi 158*53ee8cc1Swenshuai.xi/* Begin named common block. Only the name is significant. */ 159*53ee8cc1Swenshuai.xi__define_stab (N_BCOMM, 0xe2, "BCOMM") 160*53ee8cc1Swenshuai.xi 161*53ee8cc1Swenshuai.xi/* End named common block. Only the name is significant 162*53ee8cc1Swenshuai.xi (and it should match the N_BCOMM). */ 163*53ee8cc1Swenshuai.xi__define_stab (N_ECOMM, 0xe4, "ECOMM") 164*53ee8cc1Swenshuai.xi 165*53ee8cc1Swenshuai.xi/* End common (local name): value is address. 166*53ee8cc1Swenshuai.xi I'm not sure how this is used. */ 167*53ee8cc1Swenshuai.xi__define_stab (N_ECOML, 0xe8, "ECOML") 168*53ee8cc1Swenshuai.xi 169*53ee8cc1Swenshuai.xi/* These STAB's are used on Gould systems for Non-Base register symbols 170*53ee8cc1Swenshuai.xi or something like that. FIXME. I have assigned the values at random 171*53ee8cc1Swenshuai.xi since I don't have a Gould here. Fixups from Gould folk welcome... */ 172*53ee8cc1Swenshuai.xi__define_stab (N_NBTEXT, 0xF0, "NBTEXT") 173*53ee8cc1Swenshuai.xi__define_stab (N_NBDATA, 0xF2, "NBDATA") 174*53ee8cc1Swenshuai.xi__define_stab (N_NBBSS, 0xF4, "NBBSS") 175*53ee8cc1Swenshuai.xi__define_stab (N_NBSTS, 0xF6, "NBSTS") 176*53ee8cc1Swenshuai.xi__define_stab (N_NBLCS, 0xF8, "NBLCS") 177*53ee8cc1Swenshuai.xi 178*53ee8cc1Swenshuai.xi/* Second symbol entry containing a length-value for the preceding entry. 179*53ee8cc1Swenshuai.xi The value is the length. */ 180*53ee8cc1Swenshuai.xi__define_stab (N_LENG, 0xfe, "LENG") 181*53ee8cc1Swenshuai.xi 182*53ee8cc1Swenshuai.xi/* The above information, in matrix format. 183*53ee8cc1Swenshuai.xi 184*53ee8cc1Swenshuai.xi STAB MATRIX 185*53ee8cc1Swenshuai.xi _________________________________________________ 186*53ee8cc1Swenshuai.xi | 00 - 1F are not dbx stab symbols | 187*53ee8cc1Swenshuai.xi | In most cases, the low bit is the EXTernal bit| 188*53ee8cc1Swenshuai.xi 189*53ee8cc1Swenshuai.xi | 00 UNDEF | 02 ABS | 04 TEXT | 06 DATA | 190*53ee8cc1Swenshuai.xi | 01 |EXT | 03 |EXT | 05 |EXT | 07 |EXT | 191*53ee8cc1Swenshuai.xi 192*53ee8cc1Swenshuai.xi | 08 BSS | 0A INDR | 0C FN_SEQ | 0E | 193*53ee8cc1Swenshuai.xi | 09 |EXT | 0B | 0D | 0F | 194*53ee8cc1Swenshuai.xi 195*53ee8cc1Swenshuai.xi | 10 | 12 COMM | 14 SETA | 16 SETT | 196*53ee8cc1Swenshuai.xi | 11 | 13 | 15 | 17 | 197*53ee8cc1Swenshuai.xi 198*53ee8cc1Swenshuai.xi | 18 SETD | 1A SETB | 1C SETV | 1E WARNING| 199*53ee8cc1Swenshuai.xi | 19 | 1B | 1D | 1F FN | 200*53ee8cc1Swenshuai.xi 201*53ee8cc1Swenshuai.xi |_______________________________________________| 202*53ee8cc1Swenshuai.xi | Debug entries with bit 01 set are unused. | 203*53ee8cc1Swenshuai.xi | 20 GSYM | 22 FNAME | 24 FUN | 26 STSYM | 204*53ee8cc1Swenshuai.xi | 28 LCSYM | 2A MAIN | 2C | 2E | 205*53ee8cc1Swenshuai.xi | 30 PC | 32 NSYMS | 34 NOMAP | 36 | 206*53ee8cc1Swenshuai.xi | 38 OBJ | 3A | 3C OPT | 3E | 207*53ee8cc1Swenshuai.xi | 40 RSYM | 42 M2C | 44 SLINE | 46 DSLINE | 208*53ee8cc1Swenshuai.xi | 48 BSLINE*| 4A DEFD | 4C | 4E | 209*53ee8cc1Swenshuai.xi | 50 EHDECL*| 52 | 54 CATCH | 56 | 210*53ee8cc1Swenshuai.xi | 58 | 5A | 5C | 5E | 211*53ee8cc1Swenshuai.xi | 60 SSYM | 62 | 64 SO | 66 | 212*53ee8cc1Swenshuai.xi | 68 | 6A | 6C | 6E | 213*53ee8cc1Swenshuai.xi | 70 | 72 | 74 | 76 | 214*53ee8cc1Swenshuai.xi | 78 | 7A | 7C | 7E | 215*53ee8cc1Swenshuai.xi | 80 LSYM | 82 BINCL | 84 SOL | 86 | 216*53ee8cc1Swenshuai.xi | 88 | 8A | 8C | 8E | 217*53ee8cc1Swenshuai.xi | 90 | 92 | 94 | 96 | 218*53ee8cc1Swenshuai.xi | 98 | 9A | 9C | 9E | 219*53ee8cc1Swenshuai.xi | A0 PSYM | A2 EINCL | A4 ENTRY | A6 | 220*53ee8cc1Swenshuai.xi | A8 | AA | AC | AE | 221*53ee8cc1Swenshuai.xi | B0 | B2 | B4 | B6 | 222*53ee8cc1Swenshuai.xi | B8 | BA | BC | BE | 223*53ee8cc1Swenshuai.xi | C0 LBRAC | C2 EXCL | C4 SCOPE | C6 | 224*53ee8cc1Swenshuai.xi | C8 | CA | CC | CE | 225*53ee8cc1Swenshuai.xi | D0 | D2 | D4 | D6 | 226*53ee8cc1Swenshuai.xi | D8 | DA | DC | DE | 227*53ee8cc1Swenshuai.xi | E0 RBRAC | E2 BCOMM | E4 ECOMM | E6 | 228*53ee8cc1Swenshuai.xi | E8 ECOML | EA | EC | EE | 229*53ee8cc1Swenshuai.xi | F0 | F2 | F4 | F6 | 230*53ee8cc1Swenshuai.xi | F8 | FA | FC | FE LENG | 231*53ee8cc1Swenshuai.xi +-----------------------------------------------+ 232*53ee8cc1Swenshuai.xi * 50 EHDECL is also MOD2. 233*53ee8cc1Swenshuai.xi * 48 BSLINE is also BROWS. 234*53ee8cc1Swenshuai.xi */ 235