Location resolve( simgrid::dwarf::LocationList const& locations, simgrid::mc::ObjectInformation* object_info, unw_cursor_t * c, void *frame_pointer_address, simgrid::mc::AddressSpace* address_space, int process_index) { unw_word_t ip = 0; if (c && unw_get_reg(c, UNW_REG_IP, &ip)) xbt_die("Could not resolve IP"); simgrid::dwarf::DwarfExpression const* expression = find_expression(locations, ip); if (!expression) xbt_die("Could not resolve location"); return simgrid::dwarf::resolve( *expression, object_info, c, frame_pointer_address, address_space, process_index); }
bool has_expression(const ExpressionTypePtr& expression) const { return find_expression(expression) != num_expressions(); }