Annotation of 43BSDTahoe/man/man5/dbx.5, revision 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.