Differences From Artifact [3edc7f9b6e]:
- File
src/exceptions/OFException.h
— part of check-in
[f2a8bdf254]
at
2013-05-25 11:40:28
on branch trunk
— Switch back to backtrace().
The reason is that __builtin_frame_address(n) for n > 0 seems to just
crash on most platforms when -fomit-stack-pointer is specified, which
seems to be the default for many platforms on -O2. The documentation
says that __builtin_frame_address() should return NULL in case it can't
get the frame, but it seems to crash instead.Therefore, this commit reverts to using backtrace() from execinfo.h, if
available. However, as __builtin_frame_address() seems to always work on
PPC (even with -fomit-frame-pointer) and seems to be the only way to get
a backtrace on the Wii, this is still used if backtrace() is unavailable
and __ppc__ defined. (user: js, size: 1912) [annotate] [blame] [check-ins using]
To Artifact [cc67cf334c]:
- File
src/exceptions/OFException.h
— part of check-in
[259f593244]
at
2013-06-11 22:55:07
on branch trunk
— Use _Unwind_Backtrace() to get a backtrace.
With this, neither the buggy __builtin_return_address() nor the GNU-only
backtrace() are required for a backtrace. (user: js, size: 1936) [annotate] [blame] [check-ins using]
︙ | |||
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | + + - + - | #import "OFObject.h" @class OFString; @class OFArray; @class OFMutableArray; #define OF_BACKTRACE_SIZE 32 /*! * @brief The base class for all exceptions in ObjFW * * The OFException class is the base class for all exceptions in ObjFW, except * the OFAllocFailedException. */ @interface OFException: OFObject { Class _inClass; |
︙ |