87e0900cb4c6c2f17083e63b7a537f423f2d6fb6
[clinton/Virtual-Jaguar-Rx.git] / src / debugger / DBGManager.h
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(size_t 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__