23c137fdc2f761f18cf9bd93e91553d1fd5deec1
3 #ifndef __ELFMANAGER_H__
4 #define __ELFMANAGER_H__
20 ELF_debug_abbrev_TYPE
, // Abbreviations used in the .debug_info section
21 ELF_debug_aranges_TYPE
, // Lookup table for mapping addresses to compilation units
22 ELF_debug_frame_TYPE
, // Call frame information
23 ELF_debug_info_TYPE
, // Core DWARF information section
24 ELF_debug_line_TYPE
, // Line number information
25 ELF_debug_loc_TYPE
, // Location lists used in the DW_AT_location attributes
26 ELF_debug_macinfo_TYPE
, // Macro information
27 ELF_debug_pubnames_TYPE
, // Lookup table for mapping object and function names to compilation units
28 ELF_debug_pubtypes_TYPE
, // Lookup table for mapping type names to compilation units
29 ELF_debug_ranges_TYPE
, // Address ranges used in the DW_AT_ranges attributes
30 ELF_debug_str_TYPE
, // String table used in .debug_info
31 ELF_debug_types_TYPE
, // Type descriptions
37 extern void ELFManager_Init(void);
38 extern bool ELFManager_DwarfInit(Elf
*PtrElfMem
);
39 extern Elf
*ELFManager_MemOpen(char *PtrELFExe
, size_t Size
);
40 extern int ELFManager_MemEnd(void);
41 extern void ELFManager_Reset(void);
42 extern void ELFManager_Close(void);
43 extern bool ELFManager_AddTab(void *Ptr
, size_t type
);
44 extern void *ELFManager_ExeCopy(void *src
, size_t size
);
47 extern size_t ELFManager_GetSectionType(char *SectionName
);
50 extern size_t ELFManager_GetAdrFromSymbolName(char *SymbolName
);
51 extern char *ELFManager_GetSymbolnameFromAdr(size_t Adr
);
54 extern char *ELFManager_GetFunctionName(size_t Adr
);
57 #endif // __ELFMANAGER_H__