]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/stacktrace/example/trace_addresses.cpp
1 // Copyright Antony Polukhin, 2016-2022.
3 // Distributed under the Boost Software License, Version 1.0. (See
4 // accompanying file LICENSE_1_0.txt or copy at
5 // http://www.boost.org/LICENSE_1_0.txt)
7 #include <boost/config.hpp>
9 #ifdef BOOST_NO_CXX11_RANGE_BASED_FOR
10 #include <boost/stacktrace.hpp>
11 #include <iostream> // std::cout
13 namespace bs
= boost::stacktrace
;
14 void dump_compact(const bs::stacktrace
& st
) {
15 for (unsigned i
= 0; i
< st
.size(); ++i
) {
16 bs::frame frame
= st
[i
];
17 std::cout
<< frame
.address() << ',';
20 std::cout
<< std::endl
;
23 //[getting_started_trace_addresses
24 #include <boost/stacktrace.hpp>
25 #include <iostream> // std::cout
27 namespace bs
= boost::stacktrace
;
28 void dump_compact(const bs::stacktrace
& st
) {
29 for (bs::frame frame
: st
) {
30 std::cout
<< frame
.address() << ',';
33 std::cout
<< std::endl
;
38 BOOST_NOINLINE
boost::stacktrace::stacktrace
rec1(int i
);
39 BOOST_NOINLINE
boost::stacktrace::stacktrace
rec2(int i
);
41 BOOST_NOINLINE
boost::stacktrace::stacktrace
rec1(int i
) {
43 if (!i
) return boost::stacktrace::stacktrace();
50 BOOST_NOINLINE
boost::stacktrace::stacktrace
rec2(int i
) {
52 if (!i
) return boost::stacktrace::stacktrace();
60 dump_compact(rec1(8));