Add zypp::dumpBacktrace to dump current stack trace to a stream.
[platform/upstream/libzypp.git] / zypp / base / Backtrace.h
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9 /** \file       zypp/base/Backtrace.h
10  */
11 #ifndef ZYPP_BASE_BACKTRACE_H
12 #define ZYPP_BASE_BACKTRACE_H
13
14 #include <iosfwd>
15 #include <string>
16
17 ///////////////////////////////////////////////////////////////////
18 namespace zypp
19 {
20
21   /** Dump current stack trace to a stream.
22    * Thanks to http://stackoverflow.com/questions/77005.
23     * \code
24    * #include <iostream>
25    * std::cerr << zypp::dumpBacktrace << std::endl;
26    * \endcode
27    * \code
28    * #include <zypp/base/String.h>
29    * std::string trace( str::Str() << zypp::dumpBacktrace );
30    * \endcode
31    */
32   std::ostream & dumpBacktrace( std::ostream & stream_r );
33
34 } // namespace zypp
35 ///////////////////////////////////////////////////////////////////
36 #endif // ZYPP_BASE_BACKTRACE_H