mc_dwarf_location_list_init(&frame->frame_base, info, die, &attr_frame_base);
}
- frame->end = -1; // This one is now useless:
frame->scopes = xbt_dynar_new(sizeof(dw_frame_t), (void_f_pvoid_t) mc_frame_free_voipd);
// Register it:
/*************************************************************************/
-/** \brief Finds a frame (DW_TAG_subprogram) from an DWARF offset in the rangd of this subprogram
- *
- * The offset can be an offset of a child DW_TAG_variable.
- */
-static dw_frame_t MC_dwarf_get_frame_by_offset(xbt_dict_t all_variables, unsigned long int offset){
-
- xbt_dict_cursor_t cursor = NULL;
- char *name;
- dw_frame_t res;
-
- xbt_dict_foreach(all_variables, cursor, name, res) {
- if(offset >= res->start && offset < res->end){
- xbt_dict_cursor_free(&cursor);
- return res;
- }
- }
-
- xbt_dict_cursor_free(&cursor);
- return NULL;
-
-}
-
static dw_variable_t MC_dwarf_get_variable_by_name(dw_frame_t frame, char *var){
unsigned int cursor = 0;
s_mc_location_list_t frame_base;
xbt_dynar_t /* <dw_variable_t> */ variables; /* Cannot use dict, there may be several variables with the same name (in different lexical blocks)*/
unsigned long int start; /* DWARF offset of the subprogram */
- unsigned long int end; /* Dwarf offset of the next sibling */
xbt_dynar_t /* <dw_frame_t> */ scopes;
};