File tree Expand file tree Collapse file tree 1 file changed +6
-1
lines changed
src/libstd/sys/common/unwind Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Original file line number Diff line number Diff line change @@ -224,8 +224,13 @@ pub mod eabi {
224
224
context : * mut uw:: _Unwind_Context
225
225
) -> uw:: _Unwind_Reason_Code
226
226
{
227
+ // Backtraces on ARM will call the personality routine with
228
+ // state == _US_VIRTUAL_UNWIND_FRAME | _US_FORCE_UNWIND. In those cases
229
+ // we want to continue unwinding the stack, otherwise all our backtraces
230
+ // would end at __rust_try.
227
231
if ( state as c_int & uw:: _US_ACTION_MASK as c_int )
228
- == uw:: _US_VIRTUAL_UNWIND_FRAME as c_int { // search phase
232
+ == uw:: _US_VIRTUAL_UNWIND_FRAME as c_int
233
+ && ( state as c_int & uw:: _US_FORCE_UNWIND as c_int ) == 0 { // search phase
229
234
uw:: _URC_HANDLER_FOUND // catch!
230
235
}
231
236
else { // cleanup phase
You can’t perform that action at this time.
0 commit comments