From cabcaa0475e57e9e9a4f677f26271f4493e732c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20W=C3=A4ckerlin?= Date: Fri, 7 Jan 2005 00:34:38 +0000 Subject: [PATCH] some changes for solaris --- mrw/stacktrace.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/mrw/stacktrace.cpp b/mrw/stacktrace.cpp index 1b930d2..de7de73 100644 --- a/mrw/stacktrace.cpp +++ b/mrw/stacktrace.cpp @@ -9,6 +9,9 @@ @license LGPL, see file COPYING $Log$ + Revision 1.9 2005/01/07 00:34:38 marc + some changes for solaris + Revision 1.8 2004/12/20 13:22:25 marc mrw string now throws exceptions, catch needed @@ -103,8 +106,12 @@ namespace mrw { confusing the demangler. */ const char* p(name); while (p && *p == '.') ++p; - - Auto::Free res(cplus_demangle(p, DMGL_ANSI | DMGL_PARAMS)); +# ifdef __solaris__ + char res[1024]; + if (cplus_demangle(p, res, 1024)) return name; +# else + Auto::Free res(cplus_demangle(p, DMGL_ANSI | DMGL_PARAMS)); +# endif if (res) { /* Now put back any stripped dots. */ if (p==name) return static_cast(res); @@ -244,17 +251,17 @@ bool mrw::StackTrace::createSymtable(const mrw::StackTrace::BinFiles& files) mrw::StackTrace::BinFiles mrw::StackTrace::filename() throw(std::bad_exception) { mrw::StackTrace::BinFiles res; -# if defined(__solaris__) +# if defined(__solaris__) { std::string s; s<<"/proc/"<