Differences From Artifact [fbd2e39b2b]:
- File
src/exceptions/OFException.m
— 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: 3823) [annotate] [blame] [check-ins using]
To Artifact [d08e1839ba]:
- File src/exceptions/OFException.m — part of check-in [42ed7e394c] at 2013-06-03 21:38:31 on branch trunk — OFException: Cleaner way to check architecture. (user: js, size: 3783) [annotate] [blame] [check-ins using]
︙ | |||
52 53 54 55 56 57 58 | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | - + | - initWithClass: (Class)class { self = [super init]; _inClass = class; #if defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE) _backtraceSize = backtrace(_backtrace, 32); |
︙ | |||
142 143 144 145 146 147 148 | 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | - + | } objc_autoreleasePoolPop(pool); [backtrace makeImmutable]; return backtrace; |
︙ |