stabs_11.html   [plain text]


<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.51
     from /mnt/apple/gdb/source/gdb.apple/source/gdb/gdb/doc/stabs.texinfo on 23 November 1999 -->

<TITLE>STABS - Expanded Reference by Stab Type</TITLE>
</HEAD>
<BODY>
Go to the <A HREF="stabs_1.html">first</A>, <A HREF="stabs_10.html">previous</A>, <A HREF="stabs_12.html">next</A>, <A HREF="stabs_14.html">last</A> section, <A HREF="stabs_toc.html">table of contents</A>.
<P><HR><P>


<H1><A NAME="SEC72" HREF="stabs_toc.html#TOC72">Expanded Reference by Stab Type</A></H1>

<P>
For a full list of stab types, and cross-references to where they are
described, see section <A HREF="stabs_8.html#SEC67">Table of Stab Types</A>.  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.

</P>
<P>
Format of an entry:

</P>
<P>
The first line is the symbol type (see <TT>`include/aout/stab.def'</TT>).

</P>
<P>
The second line describes the language constructs the symbol type
represents.

</P>
<P>
The third line is the stab format with the significant stab fields
named and the rest NIL.

</P>
<P>
Subsequent lines expand upon the meaning and possible values for each
significant stab field.

</P>
<P>
Finally, any further information.

</P>



<H2><A NAME="SEC73" HREF="stabs_toc.html#TOC73">N_PC</A></H2>

<P>
<DL>
<DT><U><CODE>.stabs</CODE>:</U> <B>N_PC</B>
<DD><A NAME="IDX51"></A>
<A NAME="IDX52"></A>
Global symbol (for Pascal).

</P>

<PRE>
"name" -&#62; "symbol_name"  &#60;&#60;?&#62;&#62;
value  -&#62; supposedly the line number (stab.def is skeptical)
</PRE>


<PRE>
<TT>`stabdump.c'</TT> says:

global pascal symbol: name,,0,subtype,line
&#60;&#60; subtype? &#62;&#62;
</PRE>

</DL>



<H2><A NAME="SEC74" HREF="stabs_toc.html#TOC74">N_NSYMS</A></H2>

<P>
<DL>
<DT><U><CODE>.stabn</CODE>:</U> <B>N_NSYMS</B>
<DD><A NAME="IDX53"></A>
<A NAME="IDX54"></A>
Number of symbols (according to Ultrix V4.0).

</P>

<PRE>
        0, files,,funcs,lines (stab.def)
</PRE>

</DL>



<H2><A NAME="SEC75" HREF="stabs_toc.html#TOC75">N_NOMAP</A></H2>

<P>
<DL>
<DT><U><CODE>.stabs</CODE>:</U> <B>N_NOMAP</B>
<DD><A NAME="IDX55"></A>
<A NAME="IDX56"></A>
No DST map for symbol (according to Ultrix V4.0).  I think this means a
variable has been optimized out.

</P>

<PRE>
        name, ,0,type,ignored (stab.def)
</PRE>

</DL>



<H2><A NAME="SEC76" HREF="stabs_toc.html#TOC76">N_M2C</A></H2>

<P>
<DL>
<DT><U><CODE>.stabs</CODE>:</U> <B>N_M2C</B>
<DD><A NAME="IDX57"></A>
<A NAME="IDX58"></A>
Modula-2 compilation unit.

</P>

<PRE>
"string" -&#62; "unit_name,unit_time_stamp[,code_time_stamp]"
desc   -&#62; unit_number
value  -&#62; 0 (main unit)
          1 (any other unit)
</PRE>

<P>
See <CITE>Dbx and Dbxtool Interfaces</CITE>, 2nd edition, by Sun, 1988, for
more information.

</P>
</DL>



<H2><A NAME="SEC77" HREF="stabs_toc.html#TOC77">N_BROWS</A></H2>

<P>
<DL>
<DT><U><CODE>.stabs</CODE>:</U> <B>N_BROWS</B>
<DD><A NAME="IDX59"></A>
<A NAME="IDX60"></A>
Sun source code browser, path to <TT>`.cb'</TT> file

</P>
<P>
&#60;&#60;?&#62;&#62;
"path to associated <TT>`.cb'</TT> file"

</P>
<P>
Note: N_BROWS has the same value as N_BSLINE.
</DL>

</P>


<H2><A NAME="SEC78" HREF="stabs_toc.html#TOC78">N_DEFD</A></H2>

<P>
<DL>
<DT><U><CODE>.stabn</CODE>:</U> <B>N_DEFD</B>
<DD><A NAME="IDX61"></A>
<A NAME="IDX62"></A>
GNU Modula2 definition module dependency.

</P>
<P>
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 <CODE>%INITIALIZE</CODE>.  Perhaps
<CODE>N_M2C</CODE> can be used if there are enough empty fields?
</DL>

</P>


<H2><A NAME="SEC79" HREF="stabs_toc.html#TOC79">N_EHDECL</A></H2>

<P>
<DL>
<DT><U><CODE>.stabs</CODE>:</U> <B>N_EHDECL</B>
<DD><A NAME="IDX63"></A>
<A NAME="IDX64"></A>
GNU C++ exception variable &#60;&#60;?&#62;&#62;.

</P>
<P>
"<VAR>string</VAR> is variable name"

</P>
<P>
Note: conflicts with <CODE>N_MOD2</CODE>.
</DL>

</P>


<H2><A NAME="SEC80" HREF="stabs_toc.html#TOC80">N_MOD2</A></H2>

<P>
<DL>
<DT><U><CODE>.stab?</CODE>:</U> <B>N_MOD2</B>
<DD><A NAME="IDX65"></A>
<A NAME="IDX66"></A>
Modula2 info "for imc" (according to Ultrix V4.0)

</P>
<P>
Note: conflicts with <CODE>N_EHDECL</CODE>  &#60;&#60;?&#62;&#62;
</DL>

</P>


<H2><A NAME="SEC81" HREF="stabs_toc.html#TOC81">N_CATCH</A></H2>

<P>
<DL>
<DT><U><CODE>.stabn</CODE>:</U> <B>N_CATCH</B>
<DD><A NAME="IDX67"></A>
<A NAME="IDX68"></A>
GNU C++ <CODE>catch</CODE> clause

</P>
<P>
GNU C++ <CODE>catch</CODE> clause.  The value is its address.  The desc field
is nonzero if this entry is immediately followed by a <CODE>CAUGHT</CODE> stab
saying what exception was caught.  Multiple <CODE>CAUGHT</CODE> stabs means
that multiple exceptions can be caught here.  If desc is 0, it means all
exceptions are caught here.
</DL>

</P>


<H2><A NAME="SEC82" HREF="stabs_toc.html#TOC82">N_SSYM</A></H2>

<P>
<DL>
<DT><U><CODE>.stabn</CODE>:</U> <B>N_SSYM</B>
<DD><A NAME="IDX69"></A>
<A NAME="IDX70"></A>
Structure or union element.

</P>
<P>
The value is the offset in the structure.

</P>
<P>
&#60;&#60;?looking at structs and unions in C I didn't see these&#62;&#62;
</DL>

</P>


<H2><A NAME="SEC83" HREF="stabs_toc.html#TOC83">N_SCOPE</A></H2>

<P>
<DL>
<DT><U><CODE>.stab?</CODE>:</U> <B>N_SCOPE</B>
<DD><A NAME="IDX71"></A>
<A NAME="IDX72"></A>
Modula2 scope information (Sun linker)
&#60;&#60;?&#62;&#62;
</DL>

</P>


<H2><A NAME="SEC84" HREF="stabs_toc.html#TOC84">Non-base registers on Gould systems</A></H2>

<P>
<DL>
<DT><U><CODE>.stab?</CODE>:</U> <B>N_NBTEXT</B>
<DD><A NAME="IDX73"></A>
<DT><U><CODE>.stab?</CODE>:</U> <B>N_NBDATA</B>
<DD><A NAME="IDX74"></A>
<DT><U><CODE>.stab?</CODE>:</U> <B>N_NBBSS</B>
<DD><A NAME="IDX75"></A>
<DT><U><CODE>.stab?</CODE>:</U> <B>N_NBSTS</B>
<DD><A NAME="IDX76"></A>
<DT><U><CODE>.stab?</CODE>:</U> <B>N_NBLCS</B>
<DD><A NAME="IDX77"></A>
<A NAME="IDX78"></A>
<A NAME="IDX79"></A>
<A NAME="IDX80"></A>
<A NAME="IDX81"></A>
<A NAME="IDX82"></A>
These are used on Gould systems for non-base registers syms.

</P>
<P>
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).

</P>

<PRE>
240    0xf0     N_NBTEXT  ??
242    0xf2     N_NBDATA  ??
244    0xf4     N_NBBSS   ??
246    0xf6     N_NBSTS   ??
248    0xf8     N_NBLCS   ??
</PRE>

</DL>



<H2><A NAME="SEC85" HREF="stabs_toc.html#TOC85">N_LENG</A></H2>

<P>
<DL>
<DT><U><CODE>.stabn</CODE>:</U> <B>N_LENG</B>
<DD><A NAME="IDX83"></A>
<A NAME="IDX84"></A>
Second symbol entry containing a length-value for the preceding entry.
The value is the length.
</DL>

</P>
<P><HR><P>
Go to the <A HREF="stabs_1.html">first</A>, <A HREF="stabs_10.html">previous</A>, <A HREF="stabs_12.html">next</A>, <A HREF="stabs_14.html">last</A> section, <A HREF="stabs_toc.html">table of contents</A>.
</BODY>
</HTML>