|  | #pragma once | 
|  | #include <ros/common.h> | 
|  |  | 
|  | // <inc/stab.h> | 
|  | // STABS debugging info | 
|  |  | 
|  | // The ROS kernel debugger can understand some debugging information | 
|  | // in the STABS format.  For more information on this format, see | 
|  | // http://sources.redhat.com/gdb/onlinedocs/stabs_toc.html | 
|  |  | 
|  | // The constants below define some symbol types used by various debuggers | 
|  | // and compilers.  ROS uses the N_SO, N_SOL, N_FUN, and N_SLINE types. | 
|  |  | 
|  | #define	N_GSYM		0x20	// global symbol | 
|  | #define	N_FNAME		0x22	// F77 function name | 
|  | #define	N_FUN		0x24	// procedure name | 
|  | #define	N_STSYM		0x26	// data segment variable | 
|  | #define	N_LCSYM		0x28	// bss segment variable | 
|  | #define	N_MAIN		0x2a	// main function name | 
|  | #define	N_PC		0x30	// global Pascal symbol | 
|  | #define	N_RSYM		0x40	// register variable | 
|  | #define	N_SLINE		0x44	// text segment line number | 
|  | #define	N_DSLINE	0x46	// data segment line number | 
|  | #define	N_BSLINE	0x48	// bss segment line number | 
|  | #define	N_SSYM		0x60	// structure/union element | 
|  | #define	N_SO		0x64	// main source file name | 
|  | #define	N_LSYM		0x80	// stack variable | 
|  | #define	N_BINCL		0x82	// include file beginning | 
|  | #define	N_SOL		0x84	// included source file name | 
|  | #define	N_PSYM		0xa0	// parameter variable | 
|  | #define	N_EINCL		0xa2	// include file end | 
|  | #define	N_ENTRY		0xa4	// alternate entry point | 
|  | #define	N_LBRAC		0xc0	// left bracket | 
|  | #define	N_EXCL		0xc2	// deleted include file | 
|  | #define	N_RBRAC		0xe0	// right bracket | 
|  | #define	N_BCOMM		0xe2	// begin common | 
|  | #define	N_ECOMM		0xe4	// end common | 
|  | #define	N_ECOML		0xe8	// end common (local name) | 
|  | #define	N_LENG		0xfe	// length of preceding entry | 
|  |  | 
|  | // Entries in the STABS table are formatted as follows. | 
|  | typedef struct stab { | 
|  | uint32_t n_strx;	// index into string table of name | 
|  | uint8_t n_type;         // type of symbol | 
|  | uint8_t n_other;        // misc info (usually empty) | 
|  | uint16_t n_desc;        // description field | 
|  | uintptr_t n_value;	// value of symbol | 
|  | } stab_t; |