extern "C" {
-/** \brief Find the frame base of a given frame
- *
- * \param frame
- * \param unw_cursor
- */
-void *mc_find_frame_base(simgrid::mc::Frame* frame, simgrid::mc::ObjectInformation* object_info,
- unw_cursor_t * unw_cursor)
-{
- simgrid::dwarf::Location location = simgrid::dwarf::resolve(
- frame->frame_base, object_info,
- unw_cursor, NULL, NULL, -1);
- if (location.in_memory())
- return location.address();
- else if (location.in_register()) {
- // This is a special case.
- // The register if not the location of the frame base
- // (a frame base cannot be located in a register)
- // Instead, DWARF defines this to mean that the register
- // contains the address of the frame base.
- unw_word_t word;
- unw_get_reg(unw_cursor, location.register_id(), &word);
- return (void*) word;
- }
- else xbt_die("Unexpected location type");
-
-}
-
void mc_dwarf_location_list_init(
simgrid::dwarf::LocationList* list, simgrid::mc::ObjectInformation* info,
Dwarf_Die * die, Dwarf_Attribute * attr)