Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Handle DW_AT_start_scope (for constants)
[simgrid.git] / src / mc / mc_private.h
index 12783b6..8997755 100644 (file)
@@ -341,7 +341,7 @@ struct s_mc_object_info {
   char *start_exec, *end_exec; // Executable segment
   char *start_rw, *end_rw; // Read-write segment
   char *start_ro, *end_ro; // read-only segment
-  xbt_dict_t local_variables; // xbt_dict_t<frame_name, dw_frame_t>
+  xbt_dynar_t subprograms; // xbt_dynar_t<dw_frame_t>
   xbt_dynar_t global_variables; // xbt_dynar_t<dw_variable_t>
   xbt_dict_t types; // xbt_dict_t<origin as hexadecimal string, dw_type_t>
   xbt_dict_t types_by_name; // xbt_dict_t<name, dw_type_t> (full defined type only)
@@ -427,8 +427,8 @@ typedef struct s_dw_location{
 }s_dw_location_t, *dw_location_t;
 
 typedef struct s_dw_location_entry{
-  long lowpc;
-  long highpc;
+  void* lowpc;
+  void* highpc;
   dw_location_t location;
 }s_dw_location_entry_t, *dw_location_entry_t;
 
@@ -437,11 +437,14 @@ typedef struct s_dw_variable{
   int global;
   char *name;
   char *type_origin;
+  dw_type_t type;
 
   // Use either of:
   dw_location_t location;
   void* address;
 
+  size_t start_scope;
+
 }s_dw_variable_t, *dw_variable_t;
 
 struct s_dw_frame{
@@ -472,7 +475,7 @@ void* MC_object_base_address(mc_object_info_t info);
 /********************************** DWARF **********************************/
 
 Dwarf_Off MC_dwarf_resolve_location(unw_cursor_t* c, dw_location_t location, void* frame_pointer_address);
-void* mc_find_frame_base(unw_word_t ip, dw_frame_t frame, unw_cursor_t* unw_cursor);
+void* mc_find_frame_base(void* ip, dw_frame_t frame, unw_cursor_t* unw_cursor);
 
 /********************************** Miscellaneous **********************************/
 
@@ -480,7 +483,7 @@ typedef struct s_local_variable{
   char *frame;
   unsigned long ip;
   char *name;
-  char *type;
+  dw_type_t type;
   void *address;
   int region;
 }s_local_variable_t, *local_variable_t;