-/* Copyright (c) 2015-2020. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2015-2021. The SimGrid Team. All rights reserved. */
/* 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. */
#include "src/mc/inspect/mc_unw.hpp"
#include "src/mc/inspect/Frame.hpp"
-#include "src/mc/remote/RemoteClient.hpp"
+#include "src/mc/remote/RemoteProcess.hpp"
#include <cstring>
int UnwindContext::access_reg(unw_addr_space_t /*as*/, unw_regnum_t regnum, unw_word_t* valp, int write,
void* arg) noexcept
{
- simgrid::mc::UnwindContext* as_context = (simgrid::mc::UnwindContext*)arg;
- unw_context_t* context = &as_context->unwind_context_;
+ auto* as_context = static_cast<simgrid::mc::UnwindContext*>(arg);
+ unw_context_t* context = &as_context->unwind_context_;
if (write)
return -UNW_EREADONLYREG;
const greg_t* preg = (greg_t*)get_reg(context, regnum);
return 0;
}
-/** Find informations about a function (libunwind method)
+/** Find information about a function (libunwind method)
*/
int UnwindContext::get_proc_name(unw_addr_space_t /*as*/, unw_word_t addr, char* bufp, size_t buf_len, unw_word_t* offp,
void* arg) noexcept
// ***** Init
-/** Virtual table for our `libunwind` implementation
- *
- * Stack unwinding on a `simgrid::mc::Process*` (for memory, unwinding information)
- * and `ucontext_t` (for processor registers).
- *
- * It works with the `simgrid::mc::UnwindContext` context.
- *
- * Use nullptr as access_fpreg and resume, as we don't need them.
- */
-unw_accessors_t UnwindContext::accessors = {&find_proc_info, &put_unwind_info, &get_dyn_info_list_addr,
- &access_mem, &access_reg, nullptr,
- nullptr, &get_proc_name};
-
unw_addr_space_t UnwindContext::createUnwindAddressSpace()
{
- return unw_create_addr_space(&UnwindContext::accessors, BYTE_ORDER);
+ /** Virtual table for our `libunwind` implementation
+ *
+ * Stack unwinding on a `simgrid::mc::Process*` (for memory, unwinding information)
+ * and `ucontext_t` (for processor registers).
+ *
+ * It works with the `simgrid::mc::UnwindContext` context.
+ *
+ * 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};
+ return unw_create_addr_space(&accessors, BYTE_ORDER);
}
-void UnwindContext::initialize(simgrid::mc::RemoteClient* process, unw_context_t* c)
+void UnwindContext::initialize(simgrid::mc::RemoteProcess* process, unw_context_t* c)
{
this->address_space_ = process;
this->process_ = process;