1
/* - mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4
* Copyright (C) 2010 Brian Aker
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23
#include "drizzled/util/backtrace.h"
33
#endif // HAVE_BACKTRACE
42
void custom_backtrace(void)
50
size= backtrace(array, 50);
51
strings= backtrace_symbols(array, size);
53
std::cerr << "Number of stack frames obtained: " << size << std::endl;
55
for (size_t x= 1; x < size; x++)
58
char *function= (char *)malloc(sz);
62
for (char *j = strings[x]; *j; ++j)
77
char *ret = abi::__cxa_demangle(begin, function, &sz, &status);
84
strncpy(function, begin, sz);
85
strncat(function, "()", sz);
86
function[sz-1] = '\0';
88
std::cerr << function << std::endl;
92
std::cerr << strings[x] << std::endl;
99
#endif // HAVE_BACKTRACE
103
} /* namespace util */
104
} /* namespace drizzled */