From 37f43e6004b979a48aa99609264d12511023a956 Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Mon, 24 Mar 2008 21:17:48 +0000 Subject: Removed the backtrace stuff, it had some bugs, and shouldn't be here all the time anyway. Recompile everything. --- src/exceptionbase.cpp | 68 --------------------------------------------------- src/exceptionbase.h | 7 ------ 2 files changed, 75 deletions(-) diff --git a/src/exceptionbase.cpp b/src/exceptionbase.cpp index 6e5ae10..6d019af 100644 --- a/src/exceptionbase.cpp +++ b/src/exceptionbase.cpp @@ -11,70 +11,42 @@ Bu::ExceptionBase::ExceptionBase( const char *lpFormat, ... ) throw() : nErrorCode( 0 ), sWhat( NULL ) -#ifdef LIBBU_EXCEPTION_BACKTRACE - , sBT( NULL ) -#endif { va_list ap; va_start(ap, lpFormat); setWhat( lpFormat, ap ); va_end(ap); -#ifdef LIBBU_EXCEPTION_BACKTRACE - createBacktrace(); -#endif } Bu::ExceptionBase::ExceptionBase( int nCode, const char *lpFormat, ... ) throw() : nErrorCode( nCode ), sWhat( NULL ) -#ifdef LIBBU_EXCEPTION_BACKTRACE - , sBT( NULL ) -#endif { va_list ap; va_start(ap, lpFormat); setWhat( lpFormat, ap ); va_end(ap); -#ifdef LIBBU_EXCEPTION_BACKTRACE - createBacktrace(); -#endif } Bu::ExceptionBase::ExceptionBase( int nCode ) throw() : nErrorCode( nCode ), sWhat( NULL ) -#ifdef LIBBU_EXCEPTION_BACKTRACE - , sBT( NULL ) -#endif { -#ifdef LIBBU_EXCEPTION_BACKTRACE - createBacktrace(); -#endif } Bu::ExceptionBase::ExceptionBase( const ExceptionBase &e ) throw () : nErrorCode( e.nErrorCode ), sWhat( NULL ) -#ifdef LIBBU_EXCEPTION_BACKTRACE - , sBT( NULL ) -#endif { setWhat( e.sWhat ); -#ifdef LIBBU_EXCEPTION_BACKTRACE - createBacktrace(); -#endif } Bu::ExceptionBase::~ExceptionBase() throw() { delete[] sWhat; sWhat = NULL; -#ifdef LIBBU_EXCEPTION_BACKTRACE - delete[] sBT; - sBT = NULL; -#endif } void Bu::ExceptionBase::setWhat( const char *lpFormat, va_list &vargs ) @@ -107,43 +79,3 @@ int Bu::ExceptionBase::getErrorCode() return nErrorCode; } -#ifdef LIBBU_EXCEPTION_BACKTRACE -const char *Bu::ExceptionBase::getBacktrace() const throw() -{ - return sBT; -} - -#include "bu/fstring.h" -#include - -void Bu::ExceptionBase::createBacktrace() -{ - void *array[1000]; - size_t size; - char **strings; - size_t i; - - size = backtrace (array, 1000); - strings = backtrace_symbols (array, size); - - Bu::FString s; - s.format("Obtained %zd stack frames.\n", size ); - - for (i = 0; i < size; i++) - { - s += strings[i]; - s += "\n"; - } - - free (strings); - - sBT = new char[s.getSize()+1]; - strcpy( sBT, s.getStr() ); -} - -#else -const char *Bu::ExceptionBase::getBacktrace() const throw() -{ - return "Backtrace support is not compiled in.\n"; -} -#endif diff --git a/src/exceptionbase.h b/src/exceptionbase.h index 4d1d2ff..37f4418 100644 --- a/src/exceptionbase.h +++ b/src/exceptionbase.h @@ -16,7 +16,6 @@ // and it also changes the class interface, we should find out how much of // an issue that is, we could just put in an empty getBacktrace() function for // when you don't have support for it... -#define LIBBU_EXCEPTION_BACKTRACE namespace Bu { @@ -89,15 +88,9 @@ namespace Bu */ void setWhat( const char *lpText ); - const char *getBacktrace() const throw(); - private: int nErrorCode; /**< The code for the error that occured. */ char *sWhat; /**< The text string telling people what went wrong. */ -#ifdef LIBBU_EXCEPTION_BACKTRACE - char *sBT; /**< The backtrace text. */ - void createBacktrace(); -#endif }; } -- cgit v1.2.3