00001 /**************************************************************** 00002 * Fulguro 00003 * Copyright (C) 2004 Christophe Clienti 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Lesser General Public 00007 * License as published by the Free Software Foundation; either 00008 * version 2 of the License, or (at your option) any later version. 00009 * 00010 * This library is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Lesser General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Lesser General Public 00016 * License along with this library; if not, write to the 00017 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00018 * Boston, MA 02111-1307, USA. 00019 ***************************************************************/ 00020 00021 #include <stdio.h> 00022 #include <stdlib.h> 00023 #include <flgrCoreErrors.h> 00024 00025 #if defined(__GNUC__) 00026 #include <execinfo.h> 00027 #endif 00028 00029 void flgr_backtrace_print(void) { 00030 #if defined(__GNUC__) 00031 void *array[128]; 00032 size_t size; 00033 char **strings; 00034 size_t i; 00035 00036 size = backtrace(array, 128); 00037 strings = backtrace_symbols(array, size); 00038 00039 fprintf(stderr,"\tObtained %zd stack frames.\n", size); 00040 00041 for (i = 0; i < size; i++) 00042 fprintf(stderr,"\t\t%s\n", strings[i]); 00043 00044 free(strings); 00045 #endif 00046 return; 00047 }