Annotation of 43BSDTahoe/man/man5/dbx.5, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1985 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)dbx.5       6.2 (Berkeley) 1/12/86
                      6: .\"
                      7: .TH DBX 5 "January 12, 1986"
                      8: .UC 6
                      9: .SH NAME
                     10: dbx \- dbx symbol table information
                     11: .SH DESCRIPTION
                     12: The compiler symbol information generated
                     13: for \fIdbx\fP(1) uses the same structure
                     14: as described in \fIstab\fP(5), with additional type and scope information
                     15: appended to a symbol's name.
                     16: The assembler directive used to describe symbol information
                     17: has the following format:
                     18: .sp 1
                     19: .ti +8n
                     20: \fBstabs\fR ``\fIstring\fP'',\fIkind\fP,0,\fIsize\fP,\fIvalue\fP
                     21: .PP
                     22: \fIString\fR contains the name, source language type, and scope of the symbol,
                     23: \fIkind\fR specifies the memory class
                     24: (e.g., external, static, parameter, local, register), and
                     25: \fIsize\fR specifies the byte size of the object, if relevant.
                     26: The third field (0 above) is unused.
                     27: For a global variable or a type, \fIvalue\fR is unused;
                     28: for a local variable or parameter, it is the offset from the frame pointer,
                     29: for a register variable, it is the associated register number.
                     30: .PP
                     31: The different kinds of stab entries are interpreted by dbx as follows:
                     32: .IP N_GSYM 10
                     33: The symbol is a global variable (e.g., .comm variable).
                     34: The variable's address can be found from the corresponding
                     35: ld(1) symbol entry, thus the value field for N_GSYM symbols is ignored.
                     36: For example, a global variable ``x'' will have both an N_GSYM entry and
                     37: an \fIld\fP(1) entry (e.g., N_BSS + N_EXT).
                     38: See \fIa.out\fP(5) for details about these other entries.
                     39: of 
                     40: .IP N_FUN
                     41: The symbol is a procedure or function.
                     42: The size field contains the line number of the entry point.
                     43: The value field contains the address of the entry point (in the text segment).
                     44: .IP N_STSYM
                     45: The symbol is a statically allocated variable for which
                     46: an initial value has been specified.
                     47: The value field contains the address of the variable (in the data segment).
                     48: .IP N_LCSYM
                     49: The symbol is statically allocated, but not initialized.
                     50: .IP N_RSYM
                     51: The symbol is a register variable whose value is kept in the register
                     52: denoted by the value field.
                     53: .IP N_PSYM
                     54: The symbol is a parameter whose value is pushed on the stack before the call.
                     55: The value field contains the offset from the argument base pointer
                     56: (on the VAX, the ap register).
                     57: .IP N_LSYM
                     58: The symbol is a local variable whose value is stored in the most recently
                     59: defined procedure's stack frame.
                     60: The value is the (often negative) offset from the frame pointer
                     61: (on the VAX, the fp register).
                     62: .IP "N_PC, N_MOD2"
                     63: The symbol defines separate compilation information
                     64: for pre-linking checking for Berkeley Pascal and DEC Modula-2 programs
                     65: respectively.
                     66: For Pascal, the value field contains the line number
                     67: that the symbol is defined on.
                     68: The value field is not used for Modula-2.
                     69: .PP
                     70: Most of the source level information about a symbol
                     71: is stored in the string field of the stab entry.
                     72: Since strings are kept in a separate string table in the a.out file,
                     73: they can be arbitrarily long.
                     74: Thus there are no restrictions on the kind or length of information
                     75: in the string field, and it was not necessary
                     76: to modify the assembler or loader when extending or modifying
                     77: the format of this information.
                     78: .sp
                     79: .PP
                     80: Below is a grammar describing the syntax of the symbol string.
                     81: Except in the case of a constant whose value is a string,
                     82: there are no blanks in a symbol string.
                     83: .nf
                     84: .ta 1i 2i 3i 4i 5i 6i 7i 
                     85: .sp 1
                     86: NAME:  [a-zA-Z_][a-zA-Z_0-9]*
                     87: INTEGER:       [-][0-9][0-9]*
                     88: REAL:  [+-][0-9]*(\.[0-9][0-9]*|)([eE]([+-]|)[0-9][0-9]*|)
                     89: STRING:        ``.*''
                     90: BSTRING:       .*
                     91: 
                     92: String:
                     93:     NAME `:' Class
                     94:     `:' Class
                     95: 
                     96: Class:
                     97:     `c' `=' Constant `;'
                     98:     Variable
                     99:     Procedure
                    100:     Parameter
                    101:     NamedType
                    102:     `X' ExportInfo     -- export or import information (for N_MOD2 only)
                    103: 
                    104: Constant:
                    105:     `i' INTEGER
                    106:     `r' REAL
                    107:     `c' OrdValue
                    108:     `b' OrdValue
                    109:     `s' STRING
                    110:     `e' TypeId `,' OrdValue
                    111:     `S' TypeId `,' NumElements `,' NumBits `,' BSTRING
                    112: 
                    113: OrdValue:
                    114:     INTEGER
                    115: 
                    116: NumElements:
                    117:     INTEGER
                    118: 
                    119: NumBits:
                    120:     INTEGER
                    121: 
                    122: Variable:
                    123:     TypeId     -- local variable of type TypeId
                    124:     `r' TypeId -- register variable of type TypeId
                    125:     `S' TypeId -- module variable of type TypeId (static global in C)
                    126:     `V' TypeId -- own variable of type TypeId (static local in C)
                    127:     `G' TypeId -- global variable of type TypeId
                    128: 
                    129: Procedure:
                    130:     Proc               -- top level procedure
                    131:     Proc `,' NAME `,' NAME     -- local to first NAME,
                    132:                -- second NAME is corresponding ld symbol
                    133: 
                    134: .need 8
                    135: Proc:
                    136:     `P'        -- global procedure
                    137:     `Q'        -- local procedure (static in C)
                    138:     `I'        -- internal procedure (different calling sequence)
                    139:     `F' TypeId -- function returning type TypeId
                    140:     `f' TypeId -- local function
                    141:     `J' TypeId -- internal function
                    142: 
                    143: Parameter:
                    144:     `p' TypeId -- value parameter of type TypeId
                    145:     `v' TypeId -- reference parameter of type TypeId
                    146: 
                    147: NamedType:
                    148:     `t' TypeId -- type name for type TypeId
                    149:     `T' TypeId -- C structure tag name for struct TypeId
                    150: 
                    151: TypeId:
                    152:     INTEGER            -- Unique (per compilation) number of type
                    153:     INTEGER `=' TypeDef        -- Definition of type number
                    154:     INTEGER `=' TypeAttrs TypeDef
                    155: 
                    156: --
                    157: -- Type attributes are extra information associated with a type,
                    158: -- such as alignment constraints or pointer checking semantics.
                    159: -- Dbx interprets some of these, but will ignore rather than complain
                    160: -- about any it does not recognize.  Therefore this is a way to add
                    161: -- extra information for pre-linking checking.
                    162: --
                    163: TypeAttrs:
                    164:     `@' TypeAttrList `;'
                    165: 
                    166: TypeAttrList:
                    167:     TypeAttrList `,' TypeAttr
                    168:     TypeAttr
                    169: 
                    170: TypeAttr:
                    171:     `a' INTEGER        -- align boundary
                    172:     `s' INTEGER        -- size in bits
                    173:     `p' INTEGER        -- pointer class (e.g., checking)
                    174:     BSTRING            -- something else
                    175: 
                    176: TypeDef:
                    177:     INTEGER
                    178:     Subrange
                    179:     Array
                    180:     Record
                    181:     `e' EnumList `;'   -- enumeration
                    182:     `*' TypeId         -- pointer to TypeId
                    183:     `S' TypeId         -- set of TypeId
                    184:     `d' TypeId         -- file of TypeId
                    185:     ProcedureType
                    186:     `i' NAME `:' NAME `;'      -- imported type ModuleName:Name
                    187:     `o' NAME `;'               -- opaque type
                    188:     `i' NAME `:' NAME `,' TypeId `;'
                    189:     `o' NAME `,' TypeId `;'
                    190: 
                    191: Subrange:
                    192:     `r' TypeId `;' INTEGER `;' INTEGER
                    193: 
                    194: Array:
                    195:     `a' TypeId `;' TypeId      -- array [TypeId] of TypeId
                    196:     `A' TypeId         -- open array of TypeId
                    197:     `D' INTEGER `,' TypeId     -- N-dim. dynamic array
                    198:     `E' INTEGER `,' TypeId     -- N-dim. subarray
                    199: 
                    200: ProcedureType:
                    201:     `f' TypeId `;'             -- C function type
                    202:     `f' TypeId `,' NumParams `;' TParamList `;'
                    203:     `p' NumParams `;' TParamList `;'
                    204: 
                    205: NumParams:
                    206:     INTEGER
                    207: 
                    208: Record:
                    209:     `s' ByteSize FieldList `;' -- structure/record
                    210:     `u' ByteSize FieldList `;' -- C union
                    211: 
                    212: ByteSize:
                    213:     INTEGER
                    214: 
                    215: FieldList :
                    216:     Field
                    217:     FieldList Field
                    218: 
                    219: Field:
                    220:     NAME `:' TypeId `,' BitOffset `,' BitSize `;'
                    221: 
                    222: BitSize:
                    223:     INTEGER
                    224: 
                    225: BitOffset:
                    226:     INTEGER
                    227: 
                    228: EnumList:
                    229:     Enum
                    230:     EnumList Enum
                    231: 
                    232: Enum:
                    233:     NAME `:' OrdValue `,'
                    234: 
                    235: ParamList:
                    236:     Param
                    237:     ParamList Param
                    238: 
                    239: Param:
                    240:     NAME `:' TypeId `,' PassBy `;'
                    241: 
                    242: PassBy:
                    243:     INTEGER
                    244: 
                    245: TParam:
                    246:     TypeId `,' PassBy `;'
                    247: 
                    248: TParamList :
                    249:     TParam
                    250:     TParamList TParam
                    251: 
                    252: Export:
                    253:     INTEGER ExportInfo
                    254: 
                    255: ExportInfo:
                    256:     `t' TypeId
                    257:     `f' TypeId `,' NumParams `;' ParamList `;'
                    258:     `p' NumParams `;' ParamList `;'
                    259:     `v' TypeId
                    260:     `c' `=' Constant
                    261: 
                    262: .fi
                    263: .PP
                    264: A `?' indicates that the symbol information is continued in
                    265: the next stab entry.
                    266: This directive can only occur where a `;' would otherwise
                    267: separate the fields of a record or constants in an enumeration.
                    268: It is useful when the number of elements in one of these lists
                    269: is large.
                    270: .SH "SEE ALSO"
                    271: dbx(1), stab(5), a.out(5)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.