Differences From Artifact [03e1d50c2c]:
- File src/exceptions/OFException.m — part of check-in [0e854d19bf] at 2013-08-25 20:42:41 on branch trunk — Fix backtraces when using the Apple runtime. (user: js, size: 3640) [annotate] [blame] [check-ins using]
To Artifact [76191c1054]:
- File
src/exceptions/OFException.m
— part of check-in
[353b3ba81d]
at
2013-12-01 11:51:02
on branch trunk
— OFException: Do not show <??+offset>.
The offset is useless if the symbol is unknown, especially if it gets
large because the offset is relative to 0. (user: js, size: 3773) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
140 141 142 143 144 145 146 | uint_fast8_t i; for (i = 0; i < OF_BACKTRACE_SIZE && _backtrace[i] != NULL; i++) { # ifdef HAVE_DLADDR Dl_info info; if (dladdr(_backtrace[i], &info)) { | > > > | | > > | | | < | > | | | | 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 | uint_fast8_t i; for (i = 0; i < OF_BACKTRACE_SIZE && _backtrace[i] != NULL; i++) { # ifdef HAVE_DLADDR Dl_info info; if (dladdr(_backtrace[i], &info)) { OFString *frame; if (info.dli_sname != NULL) { ptrdiff_t offset = (char*)_backtrace[i] - (char*)info.dli_saddr; frame = [OFString stringWithFormat: @"%p <%s+%td> at %s", _backtrace[i], info.dli_sname, offset, info.dli_fname]; } else frame = [OFString stringWithFormat: @"%p <?" @"?> at %s", _backtrace[i], info.dli_fname]; [backtrace addObject: frame]; } else # endif [backtrace addObject: [OFString stringWithFormat: @"%p", _backtrace[i]]]; } objc_autoreleasePoolPop(pool); |
︙ | ︙ |