diff options
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r-- | gdb/infrun.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c index b8c5d8e..0f8f531 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -6030,10 +6030,7 @@ insert_exception_resume_breakpoint (struct thread_info *tp, struct frame_info *frame, struct symbol *sym) { - volatile struct gdb_exception e; - - /* We want to ignore errors here. */ - TRY_CATCH (e, RETURN_MASK_ERROR) + TRY { struct symbol *vsym; struct value *value; @@ -6062,6 +6059,11 @@ insert_exception_resume_breakpoint (struct thread_info *tp, inferior_thread ()->control.exception_resume_breakpoint = bp; } } + CATCH (e, RETURN_MASK_ERROR) + { + /* We want to ignore errors here. */ + } + END_CATCH } /* A helper for check_exception_resume that sets an @@ -6102,7 +6104,6 @@ static void check_exception_resume (struct execution_control_state *ecs, struct frame_info *frame) { - volatile struct gdb_exception e; struct bound_probe probe; struct symbol *func; @@ -6121,7 +6122,7 @@ check_exception_resume (struct execution_control_state *ecs, if (!func) return; - TRY_CATCH (e, RETURN_MASK_ERROR) + TRY { const struct block *b; struct block_iterator iter; @@ -6158,6 +6159,10 @@ check_exception_resume (struct execution_control_state *ecs, } } } + CATCH (e, RETURN_MASK_ERROR) + { + } + END_CATCH } static void @@ -6200,7 +6205,6 @@ keep_going (struct execution_control_state *ecs) } else { - volatile struct gdb_exception e; struct regcache *regcache = get_current_regcache (); int remove_bp; int remove_wps; @@ -6240,16 +6244,17 @@ keep_going (struct execution_control_state *ecs) clear_step_over_info (); /* Stop stepping if inserting breakpoints fails. */ - TRY_CATCH (e, RETURN_MASK_ERROR) + TRY { insert_breakpoints (); } - if (e.reason < 0) + CATCH (e, RETURN_MASK_ERROR) { exception_print (gdb_stderr, e); stop_waiting (ecs); return; } + END_CATCH ecs->event_thread->control.trap_expected = (remove_bp || remove_wps); |