3 #ifndef __DBGMANAGER_H__
4 #define __DBGMANAGER_H__
16 // Tag based in the DW_TAG_... list from the dwarf.h
19 DBG_TAG_pointer_type
= 0x0f,
20 DBG_TAG_compile_unit
= 0x11,
21 DBG_TAG_base_type
= 0x24,
22 DBG_TAG_subprogram
= 0x2e,
28 DBG_TAG_TYPE_structure
= 0x1,
29 DBG_TAG_TYPE_pointer
= 0x2,
30 DBG_TAG_TYPE_subrange
= 0x4,
31 DBG_TAG_TYPE_array
= 0x8,
32 DBG_TAG_TYPE_const
= 0x10,
33 DBG_TAG_TYPE_typedef
= 0x20
36 // Encoding based in the DW_ATE_... list from the dwarf.h
37 // Except for the DBG_ATE_ptr
40 DBG_ATE_address
= 0x1, // linear machine address
41 DBG_ATE_boolean
= 0x2, // true or false
42 DBG_ATE_complex_float
= 0x3, // complex floating-point number
43 DBG_ATE_float
= 0x4, // floating-point number
44 DBG_ATE_signed
= 0x5, // signed binary integer
45 DBG_ATE_signed_char
= 0x6, // signed character
46 DBG_ATE_unsigned
= 0x7, // unsigned binary integer
47 DBG_ATE_unsigned_char
= 0x8, // unsigned character
48 DBG_ATE_imaginary_float
= 0x9, /* DWARF3 */
49 DBG_ATE_packed_decimal
= 0xa, /* DWARF3f */
50 DBG_ATE_numeric_string
= 0xb, /* DWARF3f */
51 DBG_ATE_edited
= 0xc, /* DWARF3f */
52 DBG_ATE_signed_fixed
= 0xd, /* DWARF3f */
53 DBG_ATE_unsigned_fixed
= 0xe, /* DWARF3f */
54 DBG_ATE_decimal_float
= 0xf, /* DWARF3f */
55 DBG_ATE_ptr
= 0x10, // Specific to DBG Manager to represent pointer type
59 // Encoding based in the DW_OP_... list from the dwarf.h
64 DBG_OP_const1u
= 0x08,
65 DBG_OP_const1s
= 0x09,
66 DBG_OP_const2u
= 0x0a,
67 DBG_OP_const2s
= 0x0b,
68 DBG_OP_const4u
= 0x0c,
69 DBG_OP_const4s
= 0x0d,
70 DBG_OP_const8u
= 0x0e,
71 DBG_OP_const8s
= 0x0f,
91 DBG_OP_plus_uconst
= 0x23,
178 DBG_OP_breg10
= 0x7a,
179 DBG_OP_breg11
= 0x7b,
180 DBG_OP_breg12
= 0x7c,
181 DBG_OP_breg13
= 0x7d,
182 DBG_OP_breg14
= 0x7e,
183 DBG_OP_breg15
= 0x7f,
184 DBG_OP_breg16
= 0x80,
185 DBG_OP_breg17
= 0x81,
186 DBG_OP_breg18
= 0x82,
187 DBG_OP_breg19
= 0x83,
188 DBG_OP_breg20
= 0x84,
189 DBG_OP_breg21
= 0x85,
190 DBG_OP_breg22
= 0x86,
191 DBG_OP_breg23
= 0x87,
192 DBG_OP_breg24
= 0x88,
193 DBG_OP_breg25
= 0x89,
194 DBG_OP_breg26
= 0x8a,
195 DBG_OP_breg27
= 0x8b,
196 DBG_OP_breg28
= 0x8c,
197 DBG_OP_breg29
= 0x8d,
198 DBG_OP_breg30
= 0x8e,
199 DBG_OP_breg31
= 0x8f,
204 DBG_OP_deref_size
= 0x94,
205 DBG_OP_xderef_size
= 0x95,
207 DBG_OP_push_object_address
= 0x97, /* DWARF3 */
208 DBG_OP_call2
= 0x98, /* DWARF3 */
209 DBG_OP_call4
= 0x99, /* DWARF3 */
210 DBG_OP_call_ref
= 0x9a, /* DWARF3 */
211 DBG_OP_form_tls_address
= 0x9b, /* DWARF3f */
212 DBG_OP_call_frame_cfa
= 0x9c, /* DWARF3f */
213 DBG_OP_bit_piece
= 0x9d, /* DWARF3f */
214 DBG_OP_implicit_value
= 0x9e, /* DWARF4 */
215 DBG_OP_stack_value
= 0x9f, /* DWARF4 */
222 extern void DBGManager_Init(void);
223 extern void DBGManager_SetType(size_t DBGTypeSet
);
224 extern void DBGManager_Reset(void);
225 extern void DBGManager_Close(void);
228 extern char *DBGManager_GetSymbolNameFromAdr(size_t Adr
);
229 extern char *DBGManager_GetFullSourceFilenameFromAdr(size_t Adr
, bool *Error
);
230 extern size_t DBGManager_GetNumLineFromAdr(size_t Adr
, size_t Tag
);
231 extern char *DBGManager_GetLineSrcFromAdr(size_t Adr
, size_t Tag
);
232 extern char *DBGManager_GetLineSrcFromAdrNumLine(size_t Adr
, size_t NumLine
);
233 extern char *DBGManager_GetLineSrcFromNumLineBaseAdr(size_t Adr
, size_t NumLine
);
234 extern size_t DBGManager_GetAdrFromSymbolName(char *SymbolName
);
235 extern char *DBGManager_GetFunctionName(size_t Adr
);
236 extern char *DBGManager_GetVariableValueFromAdr(size_t Adr
, size_t TypeEncoding
, size_t TypeByteSize
);
238 // Global variables manager
239 extern size_t DBGManager_GetNbGlobalVariables(void);
240 extern char *DBGManager_GetGlobalVariableName(size_t Index
);
241 extern size_t DBGManager_GetGlobalVariableTypeEncoding(size_t Index
);
242 extern char *DBGManager_GetGlobalVariableTypeName(size_t Index
);
243 extern size_t DBGManager_GetGlobalVariableTypeByteSize(size_t Index
);
244 extern size_t DBGManager_GetGlobalVariableAdr(size_t Index
);
245 extern size_t DBGManager_GetGlobalVariableAdrFromName(char *VariableName
);
246 extern char *DBGManager_GetGlobalVariableValue(size_t Index
);
247 extern size_t DBGManager_GetGlobalVariableTypeTag(size_t Index
);
249 // Local variables manager
250 extern size_t DBGManager_GetNbLocalVariables(size_t Adr
);
251 extern char *DBGManager_GetLocalVariableName(size_t Adr
, size_t Index
);
252 extern size_t DBGManager_GetLocalVariableTypeEncoding(size_t Adr
, size_t Index
);
253 extern char *DBGManager_GetLocalVariableTypeName(size_t Adr
, size_t Index
);
254 extern size_t DBGManager_GetLocalVariableTypeByteSize(size_t Adr
, size_t Index
);
255 extern size_t DBGManager_GetLocalVariableTypeTag(size_t Adr
, size_t Index
);
256 extern size_t DBGManager_GetLocalVariableOp(size_t Adr
, size_t Index
);
257 extern int DBGManager_GetLocalVariableOffset(size_t Adr
, size_t Index
);
260 #endif // __DBGMANAGER_H__