[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D. Expanded Reference by Stab Type

For a full list of stab types, and cross-references to where they are described, see A. 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.

D.1 N_PC  Pascal global symbol
D.2 N_NSYMS  Number of symbols
D.3 N_NOMAP  No DST map
D.4 N_M2C  Modula-2 compilation unit
D.5 N_BROWS  Path to .cb file for Sun source code browser
D.6 N_DEFD  GNU Modula2 definition module dependency
D.7 N_EHDECL  GNU C++ exception variable
D.8 N_MOD2  Modula2 information "for imc"
D.9 N_CATCH  GNU C++ "catch" clause
D.10 N_SSYM  Structure or union element
D.11 N_SCOPE  Modula2 scope information (Sun only)
D.12 Non-base registers on Gould systems  non-base register symbols used on Gould systems
D.13 N_LENG  Length of preceding entry


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.1 N_PC

.stabs: N_PC
Global symbol (for Pascal).

 
"name" -> "symbol_name"  <<?>>
value  -> supposedly the line number (stab.def is skeptical)

 
`stabdump.c' says:

global pascal symbol: name,,0,subtype,line
<< subtype? >>


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.2 N_NSYMS

.stabn: N_NSYMS
Number of symbols (according to Ultrix V4.0).

 
        0, files,,funcs,lines (stab.def)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.3 N_NOMAP

.stabs: N_NOMAP
No DST map for symbol (according to Ultrix V4.0). I think this means a variable has been optimized out.

 
        name, ,0,type,ignored (stab.def)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.4 N_M2C

.stabs: N_M2C
Modula-2 compilation unit.

 
"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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.5 N_BROWS

.stabs: N_BROWS
Sun source code browser, path to `.cb' file

<<?>> "path to associated `.cb' file"

Note: N_BROWS has the same value as N_BSLINE.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.6 N_DEFD

.stabn: N_DEFD
GNU Modula2 definition module dependency.

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?


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.7 N_EHDECL

.stabs: N_EHDECL
GNU C++ exception variable <<?>>.

"string is variable name"

Note: conflicts with N_MOD2.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.8 N_MOD2

.stab?: N_MOD2
Modula2 info "for imc" (according to Ultrix V4.0)

Note: conflicts with N_EHDECL <<?>>


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.9 N_CATCH

.stabn: N_CATCH
GNU C++ 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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.10 N_SSYM

.stabn: N_SSYM
Structure or union element.

The value is the offset in the structure.

<<?looking at structs and unions in C I didn't see these>>


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.11 N_SCOPE

.stab?: N_SCOPE
Modula2 scope information (Sun linker) <<?>>


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.12 Non-base registers on Gould systems

.stab?: N_NBTEXT
.stab?: N_NBDATA
.stab?: N_NBBSS
.stab?: N_NBSTS
.stab?: N_NBLCS
These are used on Gould systems for non-base registers syms.

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   ??


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

D.13 N_LENG

.stabn: N_LENG
Second symbol entry containing a length-value for the preceding entry. The value is the length.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.

These pages are maintained by the GDB developers.

Copyright Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

This document was generated by GDB Administrator on March, 28 2002 using texi2html