Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Add dwarf_global field to dw_variable_t
[simgrid.git] / src / mc / mc_private.h
index 9d438f7..180d6f9 100644 (file)
@@ -12,6 +12,8 @@
 #ifndef WIN32
 #include <sys/mman.h>
 #endif
+#include <elfutils/libdw.h>
+
 #include "mc/mc.h"
 #include "mc/datatypes.h"
 #include "xbt/fifo.h"
@@ -335,6 +337,9 @@ mc_object_info_t MC_find_object_info(memory_map_t maps, char* name);
 void MC_free_object_info(mc_object_info_t* p);
 
 void MC_dwarf_get_variables(mc_object_info_t info);
+void MC_dwarf_get_variables_libdw(mc_object_info_t info);
+const char* MC_dwarf_attrname(int attr);
+const char* MC_dwarf_tagname(int tag);
 
 extern mc_object_info_t mc_libsimgrid_info;
 extern mc_object_info_t mc_binary_info;
@@ -402,6 +407,7 @@ typedef struct s_dw_location_entry{
 }s_dw_location_entry_t, *dw_location_entry_t;
 
 typedef struct s_dw_variable{
+  Dwarf_Off dwarf_offset; /* Global offset of the field. */
   int global;
   char *name;
   char *type_origin;
@@ -421,6 +427,10 @@ typedef struct s_dw_frame{
   unsigned long int end;   /* Dwarf offset of the next sibling */
 }s_dw_frame_t, *dw_frame_t;
 
+void dw_type_free(dw_type_t t);
+
+/********************************** DWARF **********************************/
+
 /********************************** Miscellaneous **********************************/
 
 typedef struct s_local_variable{
@@ -432,5 +442,7 @@ typedef struct s_local_variable{
   int region;
 }s_local_variable_t, *local_variable_t;
 
+#define MC_USE_LIBDW_TYPES 1
+
 #endif