Suppress normal stop observer when it's problematic.

* inferior.h (suppress_normal_stop_observer): New.
        * infcall.c (call_function_by_hand): Disable stop events when
        doing function calls.
        * infmcd.c (suppress_normal_stop_observer): New.
        (finish_command_continuation): Call normal_stop observer
        explicitly.
        (finish_command): Disable stop events inside proceed.
        * infrun.c (normal_stop): Don't call normal stop observer if
        suppressed of if multi-step is in progress.
This commit is contained in:
Vladimir Prus
2008-06-10 09:32:05 +00:00
parent 3d3191a6ad
commit f5871ec07b
5 changed files with 34 additions and 2 deletions

View File

@@ -3772,7 +3772,8 @@ Further execution is probably impossible.\n"));
done:
annotate_stopped ();
observer_notify_normal_stop (stop_bpstat);
if (!suppress_normal_stop_observer && !step_multi)
observer_notify_normal_stop (stop_bpstat);
/* Delete the breakpoint we stopped at, if it wants to be deleted.
Delete any breakpoint that is to be deleted at the next stop. */
breakpoint_auto_delete (stop_bpstat);