X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdebug%2Fbacktrace.cpp;h=fe7dbffcd51a39216c783bdcd47f7d2bb45200dd;hb=cd89068b8ebafdc0f888c1aa21498bb93b55d814;hp=643fdf2bb03288dd16cdd3605e473d675541a479;hpb=55a79fbe96a87183fa4e11049eb161943636b1dd;p=libs%2Fcore.git diff --git a/source/debug/backtrace.cpp b/source/debug/backtrace.cpp index 643fdf2..fe7dbff 100644 --- a/source/debug/backtrace.cpp +++ b/source/debug/backtrace.cpp @@ -4,7 +4,10 @@ This file is part of libmspcore Copyright © 2007 Mikko Rasa, Mikkosoft Productions Distributed under the LGPL */ -#ifndef WIN32 + +// Must include something to test for glibc +#include +#if !defined(WIN32) && defined(__GLIBC__) #include #include #endif @@ -18,12 +21,10 @@ namespace Debug { Backtrace Backtrace::create() { -#ifndef WIN32 +#if !defined(WIN32) && defined(__GLIBC__) void *addresses[50]; int count=::backtrace(addresses, 50); - //char **symbols=backtrace_symbols(addresses, count); - Backtrace bt; Dl_info dli; for(int i=0; iaddress<<" in "<symbol<<" from "<file<<'\n'; + out<<*i<<'\n'; + + return out; +} + +ostream &operator<<(ostream &out, const Backtrace::StackFrame &sf) +{ + out<