The "stabs" debug format
Julia Menapace
Cygnus Support
Overview of stabs
Overview of debugging information flow
Overview of stab format
A simple example in C source
The simple example at the assembly level
Encoding for the structure of the program
The path and name of the source file
Line Numbers
Procedures
Block Structure
Simple types
Basic type definitions
Range types defined by min and max value
Range type defined by number of bits
A Comprehensive Example in C
Flow of control and nested scopes
Variables
Locally scoped automatic variables
Global Variables
Global register variables
Initialized static variables
Un-initialized static variables
Parameters
Aggregate Types
Array types
Enumerations
Structure Tags
Typedefs
Unions
Function types
Symbol information in symbol tables
GNU C++ stabs
Symbol descriptors added for C++ descriptions:
type descriptors added for C++ descriptions
Basic types for C++
Simple class definition
Class instance
Method defintion
Protections
Method Modifiers (const, volatile, const volatile)
Virtual Methods
Inheritence
Virtual Base Classes
Static Members
Example2.c - source code for extended example
Example2.s - assembly code for extended example
Quick reference
Table A: Symbol types from stabs
Table B: Symbol types from assembler and linker
Table C: Symbol descriptors
Table D: Type Descriptors
Expanded reference by stab type.
32 - 0x20 - N_GYSM
34 - 0x22 - N_FNAME
36 - 0x24 - N_FUN
38 - 0x26 - N_STSYM
40 - 0x28 - N_LCSYM
42 - 0x2a - N_MAIN
48 - 0x30 - N_PC
50 - 0x32 - N_NSYMS
52 - 0x34 - N_NOMAP
64 - 0x40 - N_RSYM
66 - 0x42 - N_M2C
68 - 0x44 - N_SLINE
70 - 0x46 - N_DSLINE
72 - 0x48 - N_BSLINE
72 - 0x48 - N_BROWS
74 - 0x4a - N_DEFD
80 - 0x50 - N_EHDECL
80 - 0x50 - N_MOD2
84 - 0x54 - N_CATCH
96 - 0x60 - N_SSYM
100 - 0x64 - N_SO
128 - 0x80 - N_LSYM
130 - 0x82 - N_BINCL
132 - 0x84 - N_SOL
160 - 0xa0 - N_PSYM
162 - 0xa2 - N_EINCL
164 - 0xa4 - N_ENTRY
192 - 0xc0 - N_LBRAC
194 - 0xc2 - N_EXCL
196 - 0xc4 - N_SCOPE
224 - 0xe0 - N_RBRAC
226 - 0xe2 - N_BCOMM
228 - 0xe4 - N_ECOMM
232 - 0xe8 - N_ECOML
Non-base registers on Gould systems
- 0xfe - N_LENG
Questions and anomalies
Differences between GNU stabs in a.out and GNU stabs in xcoff
Differences between GNU stabs and Sun native stabs.
This document was generated on 8 March 1996 using the
texi2html
translator version 1.45.