diff options
author | Pedro Alves <palves@redhat.com> | 2009-03-22 17:59:59 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2009-03-22 17:59:59 +0000 |
commit | c5a4d20bb945df22e3244f60cff1860932802354 (patch) | |
tree | a58a881ecb6f727cdfd7ceea57a9e2efba44f8d3 /gdb/infrun.c | |
parent | 41d2bdb467371e3a18ff8eb69859b1d7cb56a2bd (diff) | |
download | gdb-c5a4d20bb945df22e3244f60cff1860932802354.zip gdb-c5a4d20bb945df22e3244f60cff1860932802354.tar.gz gdb-c5a4d20bb945df22e3244f60cff1860932802354.tar.bz2 |
* gdbthread.h (struct thread_info): Add in_infcall member.
* infcall.c (run_inferior_call): Save, set and restore in_infcall.
Remove reverences to suppress_resume_observer. Refresh
`call_thread' after returning from `proceed'.
* infcmd.c (suppress_resume_observer): Delete.
* inferior.h (suppress_resume_observer): Delete declaration.
* mi/mi-interp.c (mi_on_resume): Suppress output while calling an
inferior function.
* thread.c (set_running): Remove references to
suppress_resume_observer.
* infrun.c (struct inferior_status): Add in_infcall member.
(save_inferior_status): Save it.
(restore_inferior_status): Restore it.
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r-- | gdb/infrun.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c index 8466ed6..dfd6e71 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -4451,7 +4451,8 @@ done: || last.kind == TARGET_WAITKIND_EXITED || (!inferior_thread ()->step_multi && !(inferior_thread ()->stop_bpstat - && inferior_thread ()->proceed_to_finish))) + && inferior_thread ()->proceed_to_finish) + && !inferior_thread ()->in_infcall)) { if (!ptid_equal (inferior_ptid, null_ptid)) observer_notify_normal_stop (inferior_thread ()->stop_bpstat, @@ -5008,6 +5009,7 @@ struct inferior_status int breakpoint_proceeded; int proceed_to_finish; + int in_infcall; }; /* Save all of the information associated with the inferior<==>gdb @@ -5038,6 +5040,7 @@ save_inferior_status (void) tp->stop_bpstat = bpstat_copy (tp->stop_bpstat); inf_status->breakpoint_proceeded = breakpoint_proceeded; inf_status->proceed_to_finish = tp->proceed_to_finish; + inf_status->in_infcall = tp->in_infcall; inf_status->selected_frame_id = get_frame_id (get_selected_frame (NULL)); @@ -5088,6 +5091,7 @@ restore_inferior_status (struct inferior_status *inf_status) inf_status->stop_bpstat = NULL; breakpoint_proceeded = inf_status->breakpoint_proceeded; tp->proceed_to_finish = inf_status->proceed_to_finish; + tp->in_infcall = inf_status->in_infcall; if (target_has_stack) { |