Added ELF & DWARF .debug* types
[clinton/Virtual-Jaguar-Rx.git] / src / debugger / ELFManager.h
index aef8a54..23c137f 100644 (file)
@@ -12,22 +12,28 @@ typedef enum {
        ELF_data_TYPE,
        ELF_bss_TYPE,
        ELF_heap_TYPE,
-       ELF_debug_aranges_TYPE,
-       ELF_debug_info_TYPE,
-       ELF_debug_abbrev_TYPE,
-       ELF_debug_line_TYPE,
-       ELF_debug_frame_TYPE,
-       ELF_debug_str_TYPE,
-       ELF_debug_loc_TYPE,
-       ELF_debug_ranges_TYPE,
+       ELF_debug_TYPE,
        ELF_comment_TYPE,
        ELF_shstrtab_TYPE,
        ELF_symtab_TYPE,
        ELF_strtab_TYPE,
+       ELF_debug_abbrev_TYPE,                  // Abbreviations used in the .debug_info section
+       ELF_debug_aranges_TYPE,                 // Lookup table for mapping addresses to compilation units
+       ELF_debug_frame_TYPE,                   // Call frame information
+       ELF_debug_info_TYPE,                    // Core DWARF information section
+       ELF_debug_line_TYPE,                    // Line number information
+       ELF_debug_loc_TYPE,                             // Location lists used in the DW_AT_location attributes
+       ELF_debug_macinfo_TYPE,                 // Macro information
+       ELF_debug_pubnames_TYPE,                // Lookup table for mapping object and function names to compilation units
+       ELF_debug_pubtypes_TYPE,                // Lookup table for mapping type names to compilation units
+       ELF_debug_ranges_TYPE,                  // Address ranges used in the DW_AT_ranges attributes
+       ELF_debug_str_TYPE,                             // String table used in .debug_info
+       ELF_debug_types_TYPE,                   // Type descriptions
        ELF_END_TYPE
 }ELFSECTIONTYPE;
 
 
+// Internal manager
 extern void    ELFManager_Init(void);
 extern bool    ELFManager_DwarfInit(Elf *PtrElfMem);
 extern Elf *ELFManager_MemOpen(char *PtrELFExe, size_t Size);
@@ -35,10 +41,17 @@ extern int  ELFManager_MemEnd(void);
 extern void    ELFManager_Reset(void);
 extern void    ELFManager_Close(void);
 extern bool ELFManager_AddTab(void *Ptr, size_t type);
-extern char *ELFManager_GetSymbolnameFromAdr(size_t Adr);
 extern void    *ELFManager_ExeCopy(void *src, size_t size);
+
+// Sections manager
 extern size_t ELFManager_GetSectionType(char *SectionName);
+
+// Symbols manager
 extern size_t ELFManager_GetAdrFromSymbolName(char *SymbolName);
+extern char *ELFManager_GetSymbolnameFromAdr(size_t Adr);
+
+// Functions manager
+extern char *ELFManager_GetFunctionName(size_t Adr);
 
 
 #endif // __ELFMANAGER_H__