aboutsummaryrefslogtreecommitdiff
path: root/gdb/infttrace.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2002-12-11 02:02:03 +0000
committerDaniel Jacobowitz <drow@false.org>2002-12-11 02:02:03 +0000
commit7d2830a309f131b09372007cdff1f277a76b2458 (patch)
tree1fe0686cc6c8e079cc924466a147bb3fdf06bb88 /gdb/infttrace.c
parent8e7d2c16952df15b6628a9f2ee985086a408561f (diff)
downloadgdb-7d2830a309f131b09372007cdff1f277a76b2458.zip
gdb-7d2830a309f131b09372007cdff1f277a76b2458.tar.gz
gdb-7d2830a309f131b09372007cdff1f277a76b2458.tar.bz2
* hppah-nat.c (saved_child_execd_pathname, saved_vfork_state): New.
(child_post_follow_vfork): Cancel pending exec event if we follow the parent. (child_wait): Only return TARGET_WAITKIND_VFORKED when all necessary events have been processed. Return a fake TARGET_WAITKIND_EXECD event at the following wait call if necessary. * infrun.c (follow_vfork): Don't follow_exec here. (handle_inferior_event): Add comment to TARGET_WAITKIND_EXECD case about HP/UX 10.20. Remove code pushed down to hppah-nat.c:child_wait. * infttrace.c (child_resume): Use TT_PROC_CONTINUE if vfork_in_flight is set.
Diffstat (limited to 'gdb/infttrace.c')
-rw-r--r--gdb/infttrace.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gdb/infttrace.c b/gdb/infttrace.c
index 7f0910f..69a67df 100644
--- a/gdb/infttrace.c
+++ b/gdb/infttrace.c
@@ -4523,7 +4523,15 @@ child_resume (ptid_t ptid, int step, enum target_signal signal)
pending signal will be passed to the inferior. interrupt.exp
in the testsuite does this precise thing and fails due to the
unwanted signal delivery to the inferior. */
- if (resume_all_threads)
+ /* drow/2002-12-05: However, note that we must use TT_PROC_CONTINUE
+ if we are tracing a vfork. */
+ if (vfork_in_flight)
+ {
+ call_ttrace (TT_PROC_CONTINUE, tid, TT_NIL, TT_NIL, TT_NIL);
+ clear_all_handled ();
+ clear_all_stepping_mode ();
+ }
+ else if (resume_all_threads)
{
#ifdef THREAD_DEBUG
if (debug_on)