X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f98d795d32176ef1b4f9cdaa7f263264e9c85392..74225b4ab9dc011bc2ce1021c460ecdced98b4dc:/include/xbt/backtrace.hpp diff --git a/include/xbt/backtrace.hpp b/include/xbt/backtrace.hpp index 15421885dd..7801fb847f 100644 --- a/include/xbt/backtrace.hpp +++ b/include/xbt/backtrace.hpp @@ -6,13 +6,31 @@ #ifndef SIMGRIX_XBT_BACKTRACE_HPP #define SIMGRIX_XBT_BACKTRACE_HPP -#include +#include -#include +#include #include +#include #include -#include +SG_BEGIN_DECL() +/** @brief Shows a backtrace of the current location */ +XBT_PUBLIC void xbt_backtrace_display_current(); +SG_END_DECL() + +typedef void* xbt_backtrace_location_t; + +/** @brief reimplementation of glibc backtrace based directly on gcc library, without implicit malloc */ +XBT_PUBLIC int xbt_backtrace_no_malloc(void** bt, int size); + +/** @brief Captures a backtrace for further use */ +XBT_PUBLIC size_t xbt_backtrace_current(xbt_backtrace_location_t* loc, size_t count); + +/** @brief Display a previously captured backtrace */ +XBT_PUBLIC void xbt_backtrace_display(xbt_backtrace_location_t* loc, size_t count); + +/** @brief Get current backtrace with libunwind */ +XBT_PUBLIC int xbt_libunwind_backtrace(void** bt, int size); namespace simgrid { namespace xbt {