X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b5b885cc2a87003f2774fcd64358e735b8dcd2e2..5fd27b8ad8089c48410010f4a39f7fb4eb0ca4b5:/src/mc/mc_unw.h diff --git a/src/mc/mc_unw.h b/src/mc/mc_unw.h index 3625d26990..6a6b861a17 100644 --- a/src/mc/mc_unw.h +++ b/src/mc/mc_unw.h @@ -1,5 +1,4 @@ -/* Copyright (c) 2015. The SimGrid Team. - * All rights reserved. */ +/* Copyright (c) 2015-2017. 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. */ @@ -7,7 +6,7 @@ #ifndef SIMGRID_MC_UNW_H #define SIMGRID_MC_UNW_H -/** \file +/** @file * Libunwind implementation for the model-checker * * Libunwind provides an pluggable stack unwinding API: the way the current @@ -26,13 +25,12 @@ * much here. */ -#include - -#include +#include "src/mc/mc_forward.hpp" +#include "xbt/base.h" #include - -#include "src/mc/mc_forward.hpp" +#include +#include namespace simgrid { namespace unw { @@ -48,12 +46,13 @@ namespace mc { class UnwindContext { simgrid::mc::AddressSpace* addressSpace_ = nullptr; - simgrid::mc::Process* process_ = nullptr; - unw_context_t unwindContext_; + simgrid::mc::RemoteClient* process_ = nullptr; + unw_context_t unwindContext_; + public: - UnwindContext() {} + UnwindContext() = default; ~UnwindContext() { clear(); } - void initialize(simgrid::mc::Process* process, unw_context_t* c); + void initialize(simgrid::mc::RemoteClient* process, unw_context_t* c); void clear(); unw_cursor_t cursor(); @@ -87,6 +86,10 @@ public: static unw_addr_space_t createUnwindAddressSpace(); }; +void MC_dump_stack_unw(FILE* file, unw_cursor_t cursor); +void dumpStack(FILE* file, unw_cursor_t cursor); +void dumpStack(FILE* file, pid_t pid); + } }