Commit | Line | Data |
---|---|---|
cf76e892 JPM |
1 | |
2 | ||
3 | #ifndef __DBGMANAGER_H__ | |
4 | #define __DBGMANAGER_H__ | |
5 | ||
6 | ||
7 | typedef enum { | |
8 | DBG_NO_TYPE = 0x0, | |
9 | DBG_ELF = 0x1, | |
10 | DBG_DWARF = 0x2, | |
11 | DBG_ELFDWARF = 0x4, | |
12 | DBG_HWLABEL = 0x8, | |
13 | DBG_END_TYPE | |
14 | }DBGTYPE; | |
15 | ||
16 | // Tag based in the DW_TAG_... list from the dwarf.h | |
17 | typedef enum { | |
18 | DBG_NO_TAG = 0x0, | |
19 | DBG_TAG_pointer_type = 0x0f, | |
20 | DBG_TAG_compile_unit = 0x11, | |
21 | DBG_TAG_base_type = 0x24, | |
22 | DBG_TAG_subprogram = 0x2e, | |
23 | DBG_END_TAG | |
24 | }DBGTAG; | |
25 | ||
26 | // Encoding based in the DW_ATE_... list from the dwarf.h | |
27 | // Except for the DBG_ATE_ptr | |
28 | typedef enum { | |
29 | DBG_NO_TYPEENCODING, | |
30 | DBG_ATE_address = 0x1, // linear machine address | |
31 | DBG_ATE_boolean = 0x2, // true or false | |
32 | DBG_ATE_complex_float = 0x3, // complex floating-point number | |
33 | DBG_ATE_float = 0x4, // floating-point number | |
34 | DBG_ATE_signed = 0x5, // signed binary integer | |
35 | DBG_ATE_signed_char = 0x6, // signed character | |
36 | DBG_ATE_unsigned = 0x7, // unsigned binary integer | |
37 | DBG_ATE_unsigned_char = 0x8, // unsigned character | |
38 | DBG_ATE_imaginary_float = 0x9, /* DWARF3 */ | |
39 | DBG_ATE_packed_decimal = 0xa, /* DWARF3f */ | |
40 | DBG_ATE_numeric_string = 0xb, /* DWARF3f */ | |
41 | DBG_ATE_edited = 0xc, /* DWARF3f */ | |
42 | DBG_ATE_signed_fixed = 0xd, /* DWARF3f */ | |
43 | DBG_ATE_unsigned_fixed = 0xe, /* DWARF3f */ | |
44 | DBG_ATE_decimal_float = 0xf, /* DWARF3f */ | |
45 | DBG_ATE_ptr = 0x10, // Specific to DBG Manager to represent pointer type | |
46 | DBG_END_TYPEENCODING | |
47 | }DBGTYPEENCODING; | |
48 | ||
49 | ||
50 | // | |
51 | extern void DBGManager_Init(void); | |
52 | extern void DBGManager_SetType(int DBGTypeSet); | |
53 | extern void DBGManager_Reset(void); | |
54 | extern void DBGManager_Close(void); | |
55 | ||
56 | // | |
57 | extern char *DBGManager_GetSymbolnameFromAdr(size_t Adr); | |
58 | extern char *DBGManager_GetFullSourceFilenameFromAdr(size_t Adr, bool *Error); | |
59 | extern size_t DBGManager_GetNumLineFromAdr(size_t Adr, size_t Tag); | |
60 | extern char *DBGManager_GetLineSrcFromAdr(size_t Adr, size_t Tag); | |
61 | extern char *DBGManager_GetLineSrcFromAdrNumLine(size_t Adr, size_t NumLine); | |
62 | extern char *DBGManager_GetLineSrcFromNumLineBaseAdr(size_t Adr, size_t NumLine); | |
63 | ||
64 | // External variables manager | |
65 | extern size_t DBGManager_GetNbExternalVariables(void); | |
66 | extern char *DBGManager_GetExternalVariableName(size_t Index); | |
67 | extern size_t DBGManager_GetExternalVariableTypeEncoding(size_t Index); | |
68 | extern char *DBGManager_GetExternalVariableTypeName(size_t Index); | |
69 | extern size_t DBGManager_GetExternalVariableTypeByteSize(size_t Index); | |
70 | extern size_t DBGManager_GetExternalVariableAdr(size_t Index); | |
71 | extern size_t DBGManager_GetExternalVariableAdrFromName(char *VariableName); | |
72 | extern size_t DBGManager_GetAdrFromSymbolName(char *SymbolName); | |
73 | extern char *DBGManager_GetExternalVariableValue(size_t Index); | |
74 | extern size_t DBGManager_GetExternalVariableTypeTag(size_t Index); | |
75 | ||
76 | ||
77 | #endif // __DBGMANAGER_H__ |