/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
-/** \file
- * Libunwind support for mc_address_space objects.
- */
+/** \file Libunwind support for mc_address_space objects. */
// We need this for the register indices:
// #define _GNU_SOURCE
#include "src/mc/inspect/mc_unw.hpp"
#include "src/mc/inspect/Frame.hpp"
-#include "src/mc/remote/RemoteProcess.hpp"
+#include "src/mc/sosp/RemoteProcessMemory.hpp"
#include <cstring>
*
* Use nullptr as access_fpreg and resume, as we don't need them.
*/
- unw_accessors_t accessors = {&find_proc_info, &put_unwind_info, &get_dyn_info_list_addr, &access_mem, &access_reg,
- nullptr, nullptr, &get_proc_name};
+ unw_accessors_t accessors = {};
+ accessors.find_proc_info = &find_proc_info;
+ accessors.put_unwind_info = &put_unwind_info;
+ accessors.get_dyn_info_list_addr = &get_dyn_info_list_addr;
+ accessors.access_mem = &access_mem;
+ accessors.access_reg = &access_reg;
+ accessors.access_fpreg = nullptr;
+ accessors.resume = nullptr;
+ accessors.get_proc_name = &get_proc_name;
return unw_create_addr_space(&accessors, BYTE_ORDER);
}
-void UnwindContext::initialize(simgrid::mc::RemoteProcess* process, unw_context_t* c)
+void UnwindContext::initialize(simgrid::mc::RemoteProcessMemory& process_memory, const unw_context_t* c)
{
- this->address_space_ = process;
- this->process_ = process;
+ this->address_space_ = &process_memory;
+ this->process_ = &process_memory;
// Take a copy of the context for our own purpose:
this->unwind_context_ = *c;