]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/stacktrace/example/debug_function.cpp
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / boost / libs / stacktrace / example / debug_function.cpp
CommitLineData
f67539c2 1// Copyright Antony Polukhin, 2016-2020.
b32b8144
FG
2//
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)
6
7//[getting_started_debug_function
8#include <signal.h> // ::signal
9#include <boost/stacktrace/frame.hpp>
10#include <iostream> // std::cerr
11#include <cstdlib> // std::exit
12
13void print_signal_handler_and_exit() {
14 typedef void(*function_t)(int);
15
16 function_t old_signal_function = ::signal(SIGSEGV, SIG_DFL);
17 boost::stacktrace::frame f(old_signal_function);
18 std::cout << f << std::endl;
19 std::exit(0);
20}
21//]
22
23
24void my_signal_handler(int /*signum*/) {
25 std::exit(1);
26}
27
28int main() {
29 ::signal(SIGSEGV, &my_signal_handler);
30 print_signal_handler_and_exit();
b32b8144
FG
31}
32
33