-/* Copyright (c) 2015-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2015-2020. 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. */
namespace mc {
class UnwindContext {
- simgrid::mc::AddressSpace* addressSpace_ = nullptr;
- simgrid::mc::RemoteClient* process_ = nullptr;
- unw_context_t unwindContext_;
+ simgrid::mc::AddressSpace* address_space_ = nullptr;
+ simgrid::mc::RemoteClientMemory* process_ = nullptr;
+ unw_context_t unwind_context_;
public:
- void initialize(simgrid::mc::RemoteClient* process, unw_context_t* c);
+ void initialize(simgrid::mc::RemoteClientMemory* process, unw_context_t* c);
unw_cursor_t cursor();
private: // Methods and virtual table for libunwind
static int access_mem(unw_addr_space_t as, unw_word_t addr, unw_word_t* valp, int write, void* arg) noexcept;
static void* get_reg(unw_context_t* context, unw_regnum_t regnum) noexcept;
static int access_reg(unw_addr_space_t as, unw_regnum_t regnum, unw_word_t* valp, int write, void* arg) noexcept;
- static int access_fpreg(unw_addr_space_t as, unw_regnum_t regnum, unw_fpreg_t* fpvalp, int write, void* arg) noexcept;
- static int resume(unw_addr_space_t as, unw_cursor_t* cp, void* arg) noexcept;
static int 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;
static unw_accessors_t accessors;
static unw_addr_space_t createUnwindAddressSpace();
};
-void dumpStack(FILE* file, unw_cursor_t&& cursor);
-void dumpStack(FILE* file, pid_t pid);
+void dumpStack(FILE* file, unw_cursor_t* cursor);
} // namespace mc
} // namespace simgrid