Annotation of coherent/b/bin/c/h/debug.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Debugger information structures.
                      3:  * Debug segment is sequence of symbols.
                      4:  */
                      5: 
                      6: #ifndef        DEBUG_H
                      7: #define        DEBUG_H DEBUG_H
                      8: 
                      9: #include <reloc.h>
                     10: #include <ltype.h>
                     11: 
                     12: /*
                     13:  * The debug segment of a relocatable file is a collection of symbols,
                     14:  * possibly spread over several fragments,
                     15:  * with relocation applied to the values of relocatable symbols.
                     16:  * These symbols form a number (usually one) of source file symbol blocks.
                     17:  *
                     18:  * A symbol block consists of a symbol having a local symbol table
                     19:  * (source file, function, struct type, union type, enum type etc.)
                     20:  * then a begin symbol
                     21:  * followed by a list of local symbols and (recursively defined) symbol blocks,
                     22:  * terminated by an end symbol.
                     23:  *
                     24:  * A source file symbol has the name of the source file,
                     25:  * the address of the first executable statement,
                     26:  * and type "source file".
                     27:  *
                     28:  * A begin symbol
                     29:  * has name "{", the address of the first executable statement,
                     30:  * and type containing a dbst_t structure in a numeric type node.
                     31:  *
                     32:  * An end symbol has name "}", the address just past the last executable code,
                     33:  * and type as for a begin symbol.
                     34:  *
                     35:  * A source statement symbol has name ";", the address of the corresponding
                     36:  * executable code, and type as for a begin symbol.
                     37:  *
                     38:  * Local symbols on the stack have seg L_STACK;
                     39:  * parameters have seg P_STACK;
                     40:  * the address is the offset (in bytes) from the frame pointer.
                     41:  * Register class symbols have seg L_REG and address identifying
                     42:  * the register (machine dependent).
                     43:  *
                     44:  * Struct and union members have seg FLD_OFF;
                     45:  * the address is offset in bits.
                     46:  *
                     47:  * Enum members have seg ABSLUTE; address is numeric value.
                     48:  *
                     49:  * Type strings conform to same syntax as loader type strings;
                     50:  * all references to named types are represented by name strings.
                     51:  * Type symbols (seg TYPESYM) define these names in terms of loader types.
                     52:  */
                     53: 
                     54: #define        P_STACK (SUMMARY+1)
                     55: #define        L_STACK (SUMMARY+2)
                     56: #define        L_REG   (SUMMARY+3)
                     57: #define        FLD_OFF (SUMMARY+4)
                     58: 
                     59: typedef        struct  dbst_t  {               /* structure in type string for stat */
                     60:        unsigned short  db_line;        /* line number */
                     61:        unsigned char   db_col,         /* column number */
                     62:                        db_flag;        /* flags internal to debugger */
                     63:        unsigned short  db_code;        /* saved instruction code */
                     64: } dbst_t;
                     65: 
                     66: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.