//#include "Exception.ih"
// Custom includes
+#include <execinfo.h>
+#include <sstream>
+#include "../config.hh"
+#include "Backtrace.hh"
#define prefix_
///////////////////////////////cc.p////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
// senf::Exception
+#ifdef SENF_DEBUG
+prefix_ void senf::ExceptionMixin::addBacktrace()
+{
+ void * entries[SENF_DEBUG_BACKTRACE_NUMCALLERS];
+ unsigned nEntries( ::backtrace(entries, SENF_DEBUG_BACKTRACE_NUMCALLERS) );
+
+ std::stringstream ss;
+ ss << "\nException at\n";
+ formatBacktrace(ss, entries, nEntries);
+ ss << "-- \n" << message_;
+ message_ = ss.str();
+}
+#endif
+
+///////////////////////////////////////////////////////////////////////////
+// senf::Exception
+
prefix_ senf::Exception::~Exception()
throw()
{}
prefix_ char const * senf::Exception::what()
const throw()
{
- return message_.c_str();
+ return message().c_str();
}
///////////////////////////////////////////////////////////////////////////