|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.