For a full list of stab types, and cross-references to where they are described, see section Table of Stab Types. This appendix just covers certain stabs which are not yet described in the main body of this document; eventually the information will all be in one place.
Format of an entry:
The first line is the symbol type (see `include/aout/stab.def').
The second line describes the language constructs the symbol type represents.
The third line is the stab format with the significant stab fields named and the rest NIL.
Subsequent lines expand upon the meaning and possible values for each significant stab field.
Finally, any further information.
.stabs
: N_PC
"name" -> "symbol_name" <<?>> value -> supposedly the line number (stab.def is skeptical)
`stabdump.c' says: global pascal symbol: name,,0,subtype,line << subtype? >>
.stabn
: N_NSYMS
0, files,,funcs,lines (stab.def)
.stabs
: N_NOMAP
name, ,0,type,ignored (stab.def)
.stabs
: N_M2C
"string" -> "unit_name,unit_time_stamp[,code_time_stamp]" desc -> unit_number value -> 0 (main unit) 1 (any other unit)
See Dbx and Dbxtool Interfaces, 2nd edition, by Sun, 1988, for more information.
.stabs
: N_BROWS
<<?>> "path to associated `.cb' file"
Note: N_BROWS has the same value as N_BSLINE.
.stabn
: N_DEFD
GNU Modula-2 definition module dependency. The value is the
modification time of the definition file. The other field is non-zero
if it is imported with the GNU M2 keyword %INITIALIZE
. Perhaps
N_M2C
can be used if there are enough empty fields?
.stabs
: N_EHDECL
"string is variable name"
Note: conflicts with N_MOD2
.
.stab?
: N_MOD2
Note: conflicts with N_EHDECL
<<?>>
.stabn
: N_CATCH
catch
clause
GNU C++ catch
clause. The value is its address. The desc field
is nonzero if this entry is immediately followed by a CAUGHT
stab
saying what exception was caught. Multiple CAUGHT
stabs means
that multiple exceptions can be caught here. If desc is 0, it means all
exceptions are caught here.
.stabn
: N_SSYM
The value is the offset in the structure.
<<?looking at structs and unions in C I didn't see these>>
.stab?
: N_SCOPE
.stab?
: N_NBTEXT
.stab?
: N_NBDATA
.stab?
: N_NBBSS
.stab?
: N_NBSTS
.stab?
: N_NBLCS
However, the following values are not the values used by Gould; they are the values which GNU has been documenting for these values for a long time, without actually checking what Gould uses. I include these values only because perhaps some someone actually did something with the GNU information (I hope not, why GNU knowingly assigned wrong values to these in the header file is a complete mystery to me).
240 0xf0 N_NBTEXT ?? 242 0xf2 N_NBDATA ?? 244 0xf4 N_NBBSS ?? 246 0xf6 N_NBSTS ?? 248 0xf8 N_NBLCS ??
.stabn
: N_LENG
Go to the first, previous, next, last section, table of contents.