Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge pull request #302 from mpoquet/rename-s4u-synchro-examples
[simgrid.git] / include / xbt / backtrace.hpp
1 /* Copyright (c) 2005-2018. The SimGrid Team. All rights reserved.          */
2
3 /* This program is free software; you can redistribute it and/or modify it
4  * under the terms of the license (GNU LGPL) which comes with this package. */
5
6 #ifndef SIMGRIX_XBT_BACKTRACE_HPP
7 #define SIMGRIX_XBT_BACKTRACE_HPP
8
9 #include <cstddef>
10
11 #include <string>
12 #include <memory>
13 #include <vector>
14
15 #include <xbt/backtrace.h>
16
17 namespace simgrid {
18 namespace xbt {
19
20 /** A backtrace
21  *
22  *  This is used (among other things) in exceptions to store the associated
23  *  backtrace.
24  *
25  *  @ingroup XBT_ex
26  */
27 typedef std::vector<xbt_backtrace_location_t> Backtrace;
28
29 /** Try to demangle a C++ name
30  *
31  *  Return the origin string if this fails.
32  */
33 XBT_PUBLIC std::unique_ptr<char, void (*)(void*)> demangle(const char* name);
34
35 /** Get the current backtrace */
36 XBT_PUBLIC std::vector<xbt_backtrace_location_t> backtrace();
37
38 /* Translate the backtrace in a human friendly form
39  *
40  *  Try resolve symbols and source code location.
41  */
42 XBT_PUBLIC std::vector<std::string> resolve_backtrace(xbt_backtrace_location_t const* loc, std::size_t count);
43 XBT_ATTRIB_DEPRECATED_v323("Please use xbt::resolve_backtrace()") XBT_PUBLIC std::vector<std::string> resolveBacktrace(xbt_backtrace_location_t const* loc, std::size_t count);
44 }
45 }
46
47 #endif