X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f0d9c752a61e9cbef5ffb5c4ff0ea4a7fac5cddf..331f0df3af28a0f102fa15d535758c930c79a179:/src/mc/mc_object_info.cpp diff --git a/src/mc/mc_object_info.cpp b/src/mc/mc_object_info.cpp index b05c69ee48..dfab0940be 100644 --- a/src/mc/mc_object_info.cpp +++ b/src/mc/mc_object_info.cpp @@ -10,6 +10,9 @@ #include "mc_object_info.h" #include "mc_private.h" +#include "mc/Frame.hpp" +#include "mc/Type.hpp" +#include "mc/Variable.hpp" namespace simgrid { namespace mc { @@ -23,6 +26,7 @@ Type::Type() this->byte_size = 0; this->element_count = 0; this->is_pointer_type = 0; + this->type_id = 0; this->subtype = nullptr; this->full_type = nullptr; } @@ -34,48 +38,22 @@ Variable::Variable() this->dwarf_offset = 0; this->global = 0; this->type = nullptr; - this->location_list = {0, nullptr}; + this->type_id = 0; this->address = nullptr; this->start_scope = 0; this->object_info = nullptr; } -Variable::~Variable() -{ - if (this->location_list.locations) - mc_dwarf_location_list_clear(&this->location_list); -} - -// ObjectInformations - -dw_frame_t ObjectInformation::find_function(const void *ip) const -{ - xbt_dynar_t dynar = this->functions_index; - mc_function_index_item_t base = - (mc_function_index_item_t) xbt_dynar_get_ptr(dynar, 0); - int i = 0; - int j = xbt_dynar_length(dynar) - 1; - while (j >= i) { - int k = i + ((j - i) / 2); - if (ip < base[k].low_pc) { - j = k - 1; - } else if (ip >= base[k].high_pc) { - i = k + 1; - } else { - return base[k].function; - } - } - return nullptr; -} +// Frame -mc_variable_t ObjectInformation::find_variable(const char* name) const +Frame::Frame() { - unsigned int cursor = 0; - mc_variable_t variable; - xbt_dynar_foreach(this->global_variables, cursor, variable) - if(variable->name == name) - return variable; - return nullptr; + this->tag = 0; + this->low_pc = nullptr; + this->high_pc = nullptr; + this->id = 0; + this->abstract_origin_id = 0; + this->object_info = nullptr; } }