118334Speter/* Table of DBX symbol codes for the GNU system. 2169689Skan Copyright (C) 1988, 1997, 1998, 2004 Free Software Foundation, Inc. 350397Sobrien This file is part of the GNU C Library. 418334Speter 550397Sobrien The GNU C Library is free software; you can redistribute it and/or 650397Sobrien modify it under the terms of the GNU Library General Public License as 750397Sobrien published by the Free Software Foundation; either version 2 of the 850397Sobrien License, or (at your option) any later version. 918334Speter 1050397Sobrien The GNU C Library is distributed in the hope that it will be useful, 1118334Speter but WITHOUT ANY WARRANTY; without even the implied warranty of 1250397Sobrien MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1350397Sobrien Library General Public License for more details. 1418334Speter 1550397Sobrien You should have received a copy of the GNU Library General Public 1650397Sobrien License along with the GNU C Library; see the file COPYING.LIB. If not, 17169689Skan write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18169689Skan Boston, MA 02110-1301, USA. */ 1918334Speter 2018334Speter/* This contains contribution from Cygnus Support. */ 2118334Speter 2218334Speter/* Global variable. Only the name is significant. 2318334Speter To find the address, look in the corresponding external symbol. */ 2418334Speter__define_stab (N_GSYM, 0x20, "GSYM") 2518334Speter 2618334Speter/* Function name for BSD Fortran. Only the name is significant. 2718334Speter To find the address, look in the corresponding external symbol. */ 2818334Speter__define_stab (N_FNAME, 0x22, "FNAME") 2918334Speter 3018334Speter/* Function name or text-segment variable for C. Value is its address. 3118334Speter Desc is supposedly starting line number, but GCC doesn't set it 3218334Speter and DBX seems not to miss it. */ 3318334Speter__define_stab (N_FUN, 0x24, "FUN") 3418334Speter 3518334Speter/* Data-segment variable with internal linkage. Value is its address. 3618334Speter "Static Sym". */ 3718334Speter__define_stab (N_STSYM, 0x26, "STSYM") 3818334Speter 3918334Speter/* BSS-segment variable with internal linkage. Value is its address. */ 4018334Speter__define_stab (N_LCSYM, 0x28, "LCSYM") 4118334Speter 42169689Skan/* Begin function marker. */ 43169689Skan__define_stab (N_BNSYM, 0x2e, "BNSYM") 44169689Skan 45169689Skan/* End function marker. */ 46169689Skan__define_stab (N_ENSYM, 0x4e, "ENSYM") 47169689Skan 4818334Speter/* Name of main routine. Only the name is significant. 4918334Speter This is not used in C. */ 5018334Speter__define_stab (N_MAIN, 0x2a, "MAIN") 5118334Speter 5218334Speter/* Global symbol in Pascal. 5318334Speter Supposedly the value is its line number; I'm skeptical. */ 5418334Speter__define_stab (N_PC, 0x30, "PC") 5518334Speter 56117395Skan/* Number of symbols: 0, files,,funcs,lines according to Ultrix V4.0. */ 5718334Speter__define_stab (N_NSYMS, 0x32, "NSYMS") 5818334Speter 59117395Skan/* "No DST map for sym: name, ,0,type,ignored" according to Ultrix V4.0. */ 6018334Speter__define_stab (N_NOMAP, 0x34, "NOMAP") 6118334Speter 6218334Speter/* New stab from Solaris. I don't know what it means, but it 6318334Speter don't seem to contain useful information. */ 6418334Speter__define_stab (N_OBJ, 0x38, "OBJ") 6518334Speter 6618334Speter/* New stab from Solaris. I don't know what it means, but it 6718334Speter don't seem to contain useful information. Possibly related to the 6818334Speter optimization flags used in this module. */ 6918334Speter__define_stab (N_OPT, 0x3c, "OPT") 7018334Speter 7118334Speter/* Register variable. Value is number of register. */ 7218334Speter__define_stab (N_RSYM, 0x40, "RSYM") 7318334Speter 7418334Speter/* Modula-2 compilation unit. Can someone say what info it contains? */ 7518334Speter__define_stab (N_M2C, 0x42, "M2C") 7618334Speter 7718334Speter/* Line number in text segment. Desc is the line number; 7818334Speter value is corresponding address. */ 7918334Speter__define_stab (N_SLINE, 0x44, "SLINE") 8018334Speter 8118334Speter/* Similar, for data segment. */ 8218334Speter__define_stab (N_DSLINE, 0x46, "DSLINE") 8318334Speter 8418334Speter/* Similar, for bss segment. */ 8518334Speter__define_stab (N_BSLINE, 0x48, "BSLINE") 8618334Speter 8718334Speter/* Sun's source-code browser stabs. ?? Don't know what the fields are. 8818334Speter Supposedly the field is "path to associated .cb file". THIS VALUE 8918334Speter OVERLAPS WITH N_BSLINE! */ 9018334Speter__define_stab (N_BROWS, 0x48, "BROWS") 9118334Speter 9218334Speter/* GNU Modula-2 definition module dependency. Value is the modification time 93117395Skan of the definition file. Other is nonzero if it is imported with the 9418334Speter GNU M2 keyword %INITIALIZE. Perhaps N_M2C can be used if there 9518334Speter are enough empty fields? */ 9618334Speter__define_stab(N_DEFD, 0x4a, "DEFD") 9718334Speter 9818334Speter/* THE FOLLOWING TWO STAB VALUES CONFLICT. Happily, one is for Modula-2 99117395Skan and one is for C++. Still,... */ 10018334Speter/* GNU C++ exception variable. Name is variable name. */ 10118334Speter__define_stab (N_EHDECL, 0x50, "EHDECL") 10218334Speter/* Modula2 info "for imc": name,,0,0,0 according to Ultrix V4.0. */ 10318334Speter__define_stab (N_MOD2, 0x50, "MOD2") 10418334Speter 10518334Speter/* GNU C++ `catch' clause. Value is its address. Desc is nonzero if 10618334Speter this entry is immediately followed by a CAUGHT stab saying what exception 10718334Speter was caught. Multiple CAUGHT stabs means that multiple exceptions 10818334Speter can be caught here. If Desc is 0, it means all exceptions are caught 10918334Speter here. */ 11018334Speter__define_stab (N_CATCH, 0x54, "CATCH") 11118334Speter 11218334Speter/* Structure or union element. Value is offset in the structure. */ 11318334Speter__define_stab (N_SSYM, 0x60, "SSYM") 11418334Speter 11518334Speter/* Name of main source file. 11618334Speter Value is starting text address of the compilation. */ 11718334Speter__define_stab (N_SO, 0x64, "SO") 11818334Speter 11918334Speter/* Automatic variable in the stack. Value is offset from frame pointer. 12018334Speter Also used for type descriptions. */ 12118334Speter__define_stab (N_LSYM, 0x80, "LSYM") 12218334Speter 12318334Speter/* Beginning of an include file. Only Sun uses this. 12418334Speter In an object file, only the name is significant. 12518334Speter The Sun linker puts data into some of the other fields. */ 12618334Speter__define_stab (N_BINCL, 0x82, "BINCL") 12718334Speter 12818334Speter/* Name of sub-source file (#include file). 12918334Speter Value is starting text address of the compilation. */ 13018334Speter__define_stab (N_SOL, 0x84, "SOL") 13118334Speter 13218334Speter/* Parameter variable. Value is offset from argument pointer. 13318334Speter (On most machines the argument pointer is the same as the frame pointer. */ 13418334Speter__define_stab (N_PSYM, 0xa0, "PSYM") 13518334Speter 13618334Speter/* End of an include file. No name. 13718334Speter This and N_BINCL act as brackets around the file's output. 13818334Speter In an object file, there is no significant data in this entry. 13918334Speter The Sun linker puts data into some of the fields. */ 14018334Speter__define_stab (N_EINCL, 0xa2, "EINCL") 14118334Speter 14218334Speter/* Alternate entry point. Value is its address. */ 14318334Speter__define_stab (N_ENTRY, 0xa4, "ENTRY") 14418334Speter 14518334Speter/* Beginning of lexical block. 14618334Speter The desc is the nesting level in lexical blocks. 14718334Speter The value is the address of the start of the text for the block. 14818334Speter The variables declared inside the block *precede* the N_LBRAC symbol. */ 14918334Speter__define_stab (N_LBRAC, 0xc0, "LBRAC") 15018334Speter 15118334Speter/* Place holder for deleted include file. Replaces a N_BINCL and everything 15218334Speter up to the corresponding N_EINCL. The Sun linker generates these when 15318334Speter it finds multiple identical copies of the symbols from an include file. 15418334Speter This appears only in output from the Sun linker. */ 15518334Speter__define_stab (N_EXCL, 0xc2, "EXCL") 15618334Speter 15718334Speter/* Modula-2 scope information. Can someone say what info it contains? */ 15818334Speter__define_stab (N_SCOPE, 0xc4, "SCOPE") 15918334Speter 16018334Speter/* End of a lexical block. Desc matches the N_LBRAC's desc. 16118334Speter The value is the address of the end of the text for the block. */ 16218334Speter__define_stab (N_RBRAC, 0xe0, "RBRAC") 16318334Speter 16418334Speter/* Begin named common block. Only the name is significant. */ 16518334Speter__define_stab (N_BCOMM, 0xe2, "BCOMM") 16618334Speter 16718334Speter/* End named common block. Only the name is significant 16818334Speter (and it should match the N_BCOMM). */ 16918334Speter__define_stab (N_ECOMM, 0xe4, "ECOMM") 17018334Speter 17118334Speter/* End common (local name): value is address. 17218334Speter I'm not sure how this is used. */ 17318334Speter__define_stab (N_ECOML, 0xe8, "ECOML") 17418334Speter 17518334Speter/* These STAB's are used on Gould systems for Non-Base register symbols 17618334Speter or something like that. FIXME. I have assigned the values at random 177117395Skan since I don't have a Gould here. Fixups from Gould folk welcome... */ 17818334Speter__define_stab (N_NBTEXT, 0xF0, "NBTEXT") 17918334Speter__define_stab (N_NBDATA, 0xF2, "NBDATA") 18018334Speter__define_stab (N_NBBSS, 0xF4, "NBBSS") 18118334Speter__define_stab (N_NBSTS, 0xF6, "NBSTS") 18218334Speter__define_stab (N_NBLCS, 0xF8, "NBLCS") 18318334Speter 18418334Speter/* Second symbol entry containing a length-value for the preceding entry. 18518334Speter The value is the length. */ 18618334Speter__define_stab (N_LENG, 0xfe, "LENG") 18718334Speter 18818334Speter/* The above information, in matrix format. 18918334Speter 19018334Speter STAB MATRIX 19118334Speter _________________________________________________ 19218334Speter | 00 - 1F are not dbx stab symbols | 19318334Speter | In most cases, the low bit is the EXTernal bit| 19418334Speter 19518334Speter | 00 UNDEF | 02 ABS | 04 TEXT | 06 DATA | 19618334Speter | 01 |EXT | 03 |EXT | 05 |EXT | 07 |EXT | 19718334Speter 19818334Speter | 08 BSS | 0A INDR | 0C FN_SEQ | 0E | 19918334Speter | 09 |EXT | 0B | 0D | 0F | 20018334Speter 20118334Speter | 10 | 12 COMM | 14 SETA | 16 SETT | 20218334Speter | 11 | 13 | 15 | 17 | 20318334Speter 20418334Speter | 18 SETD | 1A SETB | 1C SETV | 1E WARNING| 20518334Speter | 19 | 1B | 1D | 1F FN | 20618334Speter 20718334Speter |_______________________________________________| 20818334Speter | Debug entries with bit 01 set are unused. | 20918334Speter | 20 GSYM | 22 FNAME | 24 FUN | 26 STSYM | 210169689Skan | 28 LCSYM | 2A MAIN | 2C | 2E BNSYM | 21118334Speter | 30 PC | 32 NSYMS | 34 NOMAP | 36 | 21218334Speter | 38 OBJ | 3A | 3C OPT | 3E | 21318334Speter | 40 RSYM | 42 M2C | 44 SLINE | 46 DSLINE | 214169689Skan | 48 BSLINE*| 4A DEFD | 4C | 4E ENSYM | 21518334Speter | 50 EHDECL*| 52 | 54 CATCH | 56 | 21618334Speter | 58 | 5A | 5C | 5E | 21718334Speter | 60 SSYM | 62 | 64 SO | 66 | 21818334Speter | 68 | 6A | 6C | 6E | 21918334Speter | 70 | 72 | 74 | 76 | 22018334Speter | 78 | 7A | 7C | 7E | 22118334Speter | 80 LSYM | 82 BINCL | 84 SOL | 86 | 22218334Speter | 88 | 8A | 8C | 8E | 22318334Speter | 90 | 92 | 94 | 96 | 22418334Speter | 98 | 9A | 9C | 9E | 22518334Speter | A0 PSYM | A2 EINCL | A4 ENTRY | A6 | 22618334Speter | A8 | AA | AC | AE | 22718334Speter | B0 | B2 | B4 | B6 | 22818334Speter | B8 | BA | BC | BE | 22918334Speter | C0 LBRAC | C2 EXCL | C4 SCOPE | C6 | 23018334Speter | C8 | CA | CC | CE | 23118334Speter | D0 | D2 | D4 | D6 | 23218334Speter | D8 | DA | DC | DE | 23318334Speter | E0 RBRAC | E2 BCOMM | E4 ECOMM | E6 | 23418334Speter | E8 ECOML | EA | EC | EE | 23518334Speter | F0 | F2 | F4 | F6 | 23618334Speter | F8 | FA | FC | FE LENG | 23718334Speter +-----------------------------------------------+ 23818334Speter * 50 EHDECL is also MOD2. 23918334Speter * 48 BSLINE is also BROWS. 24018334Speter */ 241