char *start_exec, *end_exec; // Executable segment
char *start_rw, *end_rw; // Read-write segment
char *start_ro, *end_ro; // read-only segment
- xbt_dynar_t subprograms; // xbt_dynar_t<dw_frame_t>
+ xbt_dict_t subprograms; // xbt_dict_t<origin as hexadecimal string, 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 full_types_by_name; // xbt_dict_t<name, dw_type_t> (full defined type only)
int offset;
dw_type_t subtype; // DW_AT_type
- dw_type_t full_type; // The same (but more complete) type in the other object.
+ dw_type_t full_type; // The same (but more complete) type
};
void* mc_member_resolve(const void* base, dw_type_t type, dw_type_t member, mc_snapshot_t snapshot);
dw_frame_t function;
};
+void mc_frame_free(dw_frame_t freme);
+
void dw_type_free(dw_type_t t);
void dw_variable_free(dw_variable_t v);
void dw_variable_free_voidp(void *t);