Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
move surf::As to s4u::As
[simgrid.git] / src / mc / mc_unw.cpp
index 0d78305..ab43771 100644 (file)
@@ -18,9 +18,9 @@
 
 #include <libunwind.h>
 
-#include "mc_object_info.h"
-#include "mc_process.h"
-#include "mc_unw.h"
+#include "src/mc/Process.hpp"
+#include "src/mc/mc_unw.h"
+#include "src/mc/Frame.hpp"
 
 using simgrid::mc::remote;
 
@@ -109,10 +109,10 @@ static void* get_reg(unw_context_t* context, unw_regnum_t regnum)
   case UNW_X86_64_R14: return &mcontext->gregs[REG_R14];
   case UNW_X86_64_R15: return &mcontext->gregs[REG_R15];
   case UNW_X86_64_RIP: return &mcontext->gregs[REG_RIP];
-  default: return NULL;
+  default: return nullptr;
   }
 #else
-  return NULL;
+  return nullptr;
 #endif
 }
 
@@ -167,7 +167,7 @@ static int get_proc_name(unw_addr_space_t as,
   simgrid::mc::Frame* frame = context->process->find_function(remote(addr));
   if (!frame)
     return - UNW_ENOINFO;
-  *offp = (unw_word_t) frame->low_pc - addr;
+  *offp = (unw_word_t) frame->range.begin() - addr;
 
   strncpy(bufp, frame->name.c_str(), buf_len);
   if (bufp[buf_len - 1]) {
@@ -223,12 +223,6 @@ int mc_unw_init_cursor(unw_cursor_t *cursor, mc_unw_context_t context)
 {
   if (!context->process || !context->address_space)
     return -UNW_EUNSPEC;
-  simgrid::mc::AddressSpace* as = context->address_space;
-
-  simgrid::mc::Process* process = dynamic_cast<simgrid::mc::Process*>(as);
-  if (process && process->is_self())
-    return unw_init_local(cursor, &context->context);
-
   return unw_init_remote(cursor, context->process->unw_addr_space, context);
 }