OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.0/] [gdb/] [doc/] [stabs.info-3] - Diff between revs 107 and 363

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 107 Rev 363
Line 1... Line 1...
This is stabs.info, produced by Makeinfo version 3.12f from
This is stabs.info, produced by makeinfo version 4.0 from
./stabs.texinfo.
./stabs.texinfo.
 
 
START-INFO-DIR-ENTRY
START-INFO-DIR-ENTRY
* Stabs: (stabs).                 The "stabs" debugging information format.
* Stabs: (stabs).                 The "stabs" debugging information format.
END-INFO-DIR-ENTRY
END-INFO-DIR-ENTRY
Line 135... Line 135...
type information for the type of the field being pointed to.  (FIXME:
type information for the type of the field being pointed to.  (FIXME:
this is acknowledged to be gibberish.  Can anyone say what really goes
this is acknowledged to be gibberish.  Can anyone say what really goes
here?).
here?).
 
 
   Note that there is a conflict between this and type attributes
   Note that there is a conflict between this and type attributes
(*note String Field::.); both use type descriptor `@'.  Fortunately,
(*note String Field::); both use type descriptor `@'.  Fortunately, the
the `@' type descriptor used in this C++ sense always will be followed
`@' type descriptor used in this C++ sense always will be followed by a
by a digit, `(', or `-', and type attributes never start with those
digit, `(', or `-', and type attributes never start with those things.
things.
 
 
 


File: stabs.info,  Node: Protections,  Next: Method Modifiers,  Prev: Member Type Descriptor,  Up: Cplusplus
File: stabs.info,  Node: Protections,  Next: Method Modifiers,  Prev: Member Type Descriptor,  Up: Cplusplus
 
 
Protections
Protections
Line 496... Line 495...
Table of Stab Types
Table of Stab Types
*******************
*******************
 
 
   The following are all the possible values for the stab type field,
   The following are all the possible values for the stab type field,
for a.out files, in numeric order.  This does not apply to XCOFF, but
for a.out files, in numeric order.  This does not apply to XCOFF, but
it does apply to stabs in sections (*note Stab Sections::.).  Stabs in
it does apply to stabs in sections (*note Stab Sections::).  Stabs in
ECOFF use these values but add 0x8f300 to distinguish them from non-stab
ECOFF use these values but add 0x8f300 to distinguish them from non-stab
symbols.
symbols.
 
 
   The symbolic names are defined in the file `include/aout/stabs.def'.
   The symbolic names are defined in the file `include/aout/stabs.def'.
 
 
Line 597... Line 596...
 
 
`0x22     N_FNAME'
`0x22     N_FNAME'
     Function name (for BSD Fortran); see *Note Procedures::.
     Function name (for BSD Fortran); see *Note Procedures::.
 
 
`0x24     N_FUN'
`0x24     N_FUN'
     Function name (*note Procedures::.) or text segment variable
     Function name (*note Procedures::) or text segment variable (*note
     (*note Statics::.).
     Statics::).
 
 
`0x26 N_STSYM'
`0x26 N_STSYM'
     Data segment file-scope variable; see *Note Statics::.
     Data segment file-scope variable; see *Note Statics::.
 
 
`0x28 N_LCSYM'
`0x28 N_LCSYM'
Line 671... Line 670...
 
 
`0x64     N_SO'
`0x64     N_SO'
     Path and name of source file; see *Note Source Files::.
     Path and name of source file; see *Note Source Files::.
 
 
`0x80 N_LSYM'
`0x80 N_LSYM'
     Stack variable (*note Stack Variables::.) or type (*note
     Stack variable (*note Stack Variables::) or type (*note
     Typedefs::.).
     Typedefs::).
 
 
`0x82     N_BINCL'
`0x82     N_BINCL'
     Beginning of an include file (Sun only); see *Note Include Files::.
     Beginning of an include file (Sun only); see *Note Include Files::.
 
 
`0x84     N_SOL'
`0x84     N_SOL'
Line 1272... Line 1271...
order of the stabs binary data depends on the object file format.  For
order of the stabs binary data depends on the object file format.  For
ELF, it matches the byte order of the ELF file itself, as determined
ELF, it matches the byte order of the ELF file itself, as determined
from the `EI_DATA' field in the `e_ident' member of the ELF header.
from the `EI_DATA' field in the `e_ident' member of the ELF header.
For SOM, it is always big-endian (is this true??? FIXME).  For COFF, it
For SOM, it is always big-endian (is this true??? FIXME).  For COFF, it
matches the byte order of the COFF headers.  The meaning of the fields
matches the byte order of the COFF headers.  The meaning of the fields
is the same as for a.out (*note Symbol Table Format::.), except that
is the same as for a.out (*note Symbol Table Format::), except that the
the `n_strx' field is relative to the strings for the current
`n_strx' field is relative to the strings for the current compilation
compilation unit (which can be found using the synthetic N_UNDF stab
unit (which can be found using the synthetic N_UNDF stab described
described below), rather than the entire string table.
below), rather than the entire string table.
 
 
   The first stab in the `.stab' section for each compilation unit is
   The first stab in the `.stab' section for each compilation unit is
synthetic, generated entirely by the assembler, with no corresponding
synthetic, generated entirely by the assembler, with no corresponding
`.stab' directive as input to the assembler.  This stab contains the
`.stab' directive as input to the assembler.  This stab contains the
following fields:
following fields:
Line 1324... Line 1323...
before concatenating, then the offsets to strings in the middle of the
before concatenating, then the offsets to strings in the middle of the
executable's `.stabstr' section would be wrong.
executable's `.stabstr' section would be wrong.
 
 
   The GNU linker is able to optimize stabs information by merging
   The GNU linker is able to optimize stabs information by merging
duplicate strings and removing duplicate header file information (*note
duplicate strings and removing duplicate header file information (*note
Include Files::.).  When some versions of the GNU linker optimize stabs
Include Files::).  When some versions of the GNU linker optimize stabs
in sections, they remove the leading `N_UNDF' symbol and arranges for
in sections, they remove the leading `N_UNDF' symbol and arranges for
all the `n_strx' fields to be relative to the start of the `.stabstr'
all the `n_strx' fields to be relative to the start of the `.stabstr'
section.
section.
 
 


Line 1363... Line 1362...
to kludge their linker to not do this (to speed up linking), even
to kludge their linker to not do this (to speed up linking), even
though the correct way to avoid having the linker do these relocations
though the correct way to avoid having the linker do these relocations
is to have the compiler no longer output relocatable values.  Last I
is to have the compiler no longer output relocatable values.  Last I
heard they had been talked out of the linker kludge.  See Sun point
heard they had been talked out of the linker kludge.  See Sun point
patch 101052-01 and Sun bug 1142109.  With the Sun compiler this
patch 101052-01 and Sun bug 1142109.  With the Sun compiler this
affects `S' symbol descriptor stabs (*note Statics::.) and functions
affects `S' symbol descriptor stabs (*note Statics::) and functions
(*note Procedures::.).  In the latter case, to adopt the clean solution
(*note Procedures::).  In the latter case, to adopt the clean solution
(making the value of the stab relative to the start of the compilation
(making the value of the stab relative to the start of the compilation
unit), it would be necessary to invent a `Ttext.text' symbol, analogous
unit), it would be necessary to invent a `Ttext.text' symbol, analogous
to the `Bbss.bss', etc., symbols.  I recommend this rather than using a
to the `Bbss.bss', etc., symbols.  I recommend this rather than using a
zero value and getting the address from the ELF symbols.
zero value and getting the address from the ELF symbols.
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.