libtrbase  1.0.2
Web server and task management solution.
print_trace.c
Go to the documentation of this file.
1 /**
2  * \file
3  *
4  * \author The GNU Software Foundation.
5  *
6  * \copyright
7  * Copyright © 2014 The GNU Softare Foundation
8  *
9  * This program is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation, either version 3 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program. If not, see <http://www.gnu.org/licenses/>.
21  */
22 
23 #include <stdio.h>
24 #include <stdlib.h>
25 
26 /* Obtain a backtrace and print it to stdout. */
27 #ifdef _WIN32
28 
29 void
30 print_trace (void)
31 {
32  printf ("sorry, bo backtrace under Windows now!\n");
33 }
34 
35 #else
36 
37 #include <execinfo.h>
38 
39 void
41 {
42  void * array[10];
43  size_t size;
44  char ** strings;
45  size_t i;
46 
47  size = backtrace (array, 10);
48  strings = backtrace_symbols (array, size);
49 
50  printf ("Obtained %zd stack frames.\n", size);
51 
52  for (i = 0; i < size; i++)
53  printf ("%s\n", strings[i]);
54 
55  free (strings);
56 }
57 
58 #endif
59 
60 // vim: set ts=4 sw=4:
size_t size
Definition: memory.h:34