Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines for 2022.
[simgrid.git] / src / mc / inspect / mc_unw.hpp
index 628cbba..49c9183 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015-2019. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2015-2022. 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. */
@@ -9,8 +9,8 @@
 /** @file
  *  Libunwind implementation for the model-checker
  *
- *  Libunwind provides an pluggable stack unwinding API: the way the current
- *  registers and memory is accessed, the way unwinding informations is found
+ *  Libunwind provides a pluggable stack unwinding API: the way the current
+ *  registers and memory is accessed, the way unwinding information is found
  *  is pluggable.
  *
  *  This component implements the libunwind API for he model-checker:
@@ -44,11 +44,11 @@ namespace mc {
 
 class UnwindContext {
   simgrid::mc::AddressSpace* address_space_ = nullptr;
-  simgrid::mc::RemoteClient* process_      = nullptr;
-  unw_context_t unwind_context_;
+  simgrid::mc::RemoteProcess* process_      = nullptr;
+  unw_context_t unwind_context_             = {};
 
 public:
-  void initialize(simgrid::mc::RemoteClient* process, unw_context_t* c);
+  void initialize(simgrid::mc::RemoteProcess* process, unw_context_t* c);
   unw_cursor_t cursor();
 
 private: // Methods and virtual table for libunwind
@@ -61,15 +61,13 @@ private: // Methods and virtual table for libunwind
   static int access_reg(unw_addr_space_t as, unw_regnum_t regnum, unw_word_t* valp, int write, 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;
 
 public:
   // Create a libunwind address space:
   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