|
|
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.