diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 977590a9f11..a43e36e0591 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2014-10-15 Andreas Arnez + + * gdb/infrun.c (process_event_stop_test): Apply + gdbarch_addr_bits_remove to longjmp resume address. + 2014-10-15 Pedro Alves * regformats/microblaze.dat: Delete file. diff --git a/gdb/infrun.c b/gdb/infrun.c index 55363503241..613227463a1 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -4596,7 +4596,10 @@ process_event_stop_test (struct execution_control_state *ecs) is the third argument to the probe. */ arg_value = probe_safe_evaluate_at_pc (frame, 2); if (arg_value) - jmp_buf_pc = value_as_address (arg_value); + { + jmp_buf_pc = value_as_address (arg_value); + jmp_buf_pc = gdbarch_addr_bits_remove (gdbarch, jmp_buf_pc); + } else if (!gdbarch_get_longjmp_target_p (gdbarch) || !gdbarch_get_longjmp_target (gdbarch, frame, &jmp_buf_pc))