diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cd2e55bacf..60a2bd91a6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2013-10-31 Pedro Alves + + * infrun.c (handle_syscall_event): Don't set or clear stop_signal. + (handle_inferior_event) : Don't set stop_signal to + GDB_SIGNAL_TRAP, or clear it. Pass GDB_SIGNAL_0 to + bpstat_explains signal, instead of GDB_SIGNAL_TRAP. + : If the bpstat chain wants the signal to be + hidden, then set stop_signal to GDB_SIGNAL_0 instead of + GDB_SIGNAL_TRAP. + 2013-10-31 Andrew Burgess * breakpoint.c (update_watchpoint): Update error message and add diff --git a/gdb/infrun.c b/gdb/infrun.c index 17612d7ada..c9e2fe22f4 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -3105,19 +3105,17 @@ handle_syscall_event (struct execution_control_state *ecs) stop_pc, ecs->ptid, &ecs->ws); sval = bpstat_explains_signal (ecs->event_thread->control.stop_bpstat, - GDB_SIGNAL_TRAP); + GDB_SIGNAL_0); ecs->random_signal = sval == BPSTAT_SIGNAL_NO; if (!ecs->random_signal) { /* Catchpoint hit. */ - ecs->event_thread->suspend.stop_signal = GDB_SIGNAL_TRAP; return 0; } } /* If no catchpoint triggered for this, then keep going. */ - ecs->event_thread->suspend.stop_signal = GDB_SIGNAL_0; keep_going (ecs); return 1; } @@ -3344,13 +3342,12 @@ handle_inferior_event (struct execution_control_state *ecs) sval = bpstat_explains_signal (ecs->event_thread->control.stop_bpstat, - GDB_SIGNAL_TRAP); + GDB_SIGNAL_0); ecs->random_signal = sval == BPSTAT_SIGNAL_NO; if (!ecs->random_signal) { /* A catchpoint triggered. */ - ecs->event_thread->suspend.stop_signal = GDB_SIGNAL_TRAP; process_event_stop_test (ecs); return; } @@ -3629,7 +3626,6 @@ Cannot fill $_exitsignal with the correct signal number.\n")); stop_stepping (ecs); return; } - ecs->event_thread->suspend.stop_signal = GDB_SIGNAL_TRAP; process_event_stop_test (ecs); return; @@ -3676,7 +3672,7 @@ Cannot fill $_exitsignal with the correct signal number.\n")); stop_pc, ecs->ptid, &ecs->ws); ecs->random_signal = (bpstat_explains_signal (ecs->event_thread->control.stop_bpstat, - GDB_SIGNAL_TRAP) + GDB_SIGNAL_0) == BPSTAT_SIGNAL_NO); /* Note that this may be referenced from inside @@ -3691,7 +3687,6 @@ Cannot fill $_exitsignal with the correct signal number.\n")); keep_going (ecs); return; } - ecs->event_thread->suspend.stop_signal = GDB_SIGNAL_TRAP; process_event_stop_test (ecs); return; @@ -4288,7 +4283,7 @@ Cannot fill $_exitsignal with the correct signal number.\n")); ecs->random_signal = (sval == BPSTAT_SIGNAL_NO); if (sval == BPSTAT_SIGNAL_HIDE) - ecs->event_thread->suspend.stop_signal = GDB_SIGNAL_TRAP; + ecs->event_thread->suspend.stop_signal = GDB_SIGNAL_0; } /* For the program's own signals, act according to