-/* Copyright (c) 2015-2021. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2015-2023. 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 <cstdio>
#include <libunwind.h>
-namespace simgrid {
-namespace unw {
+namespace simgrid::unw {
XBT_PRIVATE unw_addr_space_t create_addr_space();
XBT_PRIVATE void* create_context(unw_addr_space_t as, pid_t pid);
-} // namespace unw
-} // namespace simgrid
+} // namespace simgrid::unw
-namespace simgrid {
-namespace mc {
+namespace simgrid::mc {
class UnwindContext {
- simgrid::mc::AddressSpace* address_space_ = nullptr;
- simgrid::mc::RemoteProcess* process_ = nullptr;
- unw_context_t unwind_context_ = {};
+ simgrid::mc::AddressSpace* address_space_ = nullptr;
+ simgrid::mc::RemoteProcessMemory* process_ = nullptr;
+ unw_context_t unwind_context_ = {};
public:
- void initialize(simgrid::mc::RemoteProcess* process, unw_context_t* c);
+ void initialize(simgrid::mc::RemoteProcessMemory& process, const unw_context_t* c);
unw_cursor_t cursor();
private: // Methods and virtual table for libunwind
};
void dumpStack(FILE* file, unw_cursor_t* cursor);
-} // namespace mc
-} // namespace simgrid
+} // namespace simgrid::mc
#endif