]>
Commit | Line | Data |
---|---|---|
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 | ||
13 | void 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 | ||
24 | void my_signal_handler(int /*signum*/) { | |
25 | std::exit(1); | |
26 | } | |
27 | ||
28 | int main() { | |
29 | ::signal(SIGSEGV, &my_signal_handler); | |
30 | print_signal_handler_and_exit(); | |
b32b8144 FG |
31 | } |
32 | ||
33 |