diff options
author | Pedro Alves <palves@redhat.com> | 2008-12-16 22:44:23 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2008-12-16 22:44:23 +0000 |
commit | 5b4953adebc7a476b610badb95f3b5ab67f77928 (patch) | |
tree | cb00e167afe94bd0ac78b97b23eaf999a1c327e8 | |
parent | f0f14269a1f1b66b1734aae756dcdeb068a9640d (diff) | |
download | gdb-5b4953adebc7a476b610badb95f3b5ab67f77928.zip gdb-5b4953adebc7a476b610badb95f3b5ab67f77928.tar.gz gdb-5b4953adebc7a476b610badb95f3b5ab67f77928.tar.bz2 |
Merge from head:
2008-12-07 Pedro Alves <pedro@codesourcery.com>
(handle_inferior_event): On a TARGET_WAITKIND_EXITED or
TARGET_WAITKIND_SIGNALLED, switch inferior_ptid to the event ptid.
* linux_thread_db.c (thread_db_wait): On a TARGET_WAITKIND_EXITED
or TARGET_WAITKIND_SIGNALLED, return the ptid the beneath target
returned.
* inf-ptrace.c (inf_ptrace_wait): Return inferior_ptid instead of
minus_one_ptid if the inferior disappeared.
* rs6000-nat.c (rs6000_wait): Likewise.
* spu-linux-nat.c (spu_child_wait): Likewise.
C
-rw-r--r-- | gdb/ChangeLog.mp | 15 | ||||
-rw-r--r-- | gdb/inf-ptrace.c | 2 | ||||
-rw-r--r-- | gdb/infrun.c | 2 | ||||
-rw-r--r-- | gdb/linux-thread-db.c | 4 | ||||
-rw-r--r-- | gdb/rs6000-nat.c | 2 | ||||
-rw-r--r-- | gdb/spu-linux-nat.c | 2 |
6 files changed, 22 insertions, 5 deletions
diff --git a/gdb/ChangeLog.mp b/gdb/ChangeLog.mp index d7cd53a..5049403 100644 --- a/gdb/ChangeLog.mp +++ b/gdb/ChangeLog.mp @@ -1,6 +1,21 @@ 2008-12-16 Pedro Alves <pedro@codesourcery.com> Merge from head: + 2008-12-07 Pedro Alves <pedro@codesourcery.com> + + (handle_inferior_event): On a TARGET_WAITKIND_EXITED or + TARGET_WAITKIND_SIGNALLED, switch inferior_ptid to the event ptid. + * linux_thread_db.c (thread_db_wait): On a TARGET_WAITKIND_EXITED + or TARGET_WAITKIND_SIGNALLED, return the ptid the beneath target + returned. + * inf-ptrace.c (inf_ptrace_wait): Return inferior_ptid instead of + minus_one_ptid if the inferior disappeared. + * rs6000-nat.c (rs6000_wait): Likewise. + * spu-linux-nat.c (spu_child_wait): Likewise. + +2008-12-16 Pedro Alves <pedro@codesourcery.com> + + Merge from head: 2008-12-05 Pedro Alves <pedro@codesourcery.com> * infcmd.c (step_1, step_once): Look up the stepping range based diff --git a/gdb/inf-ptrace.c b/gdb/inf-ptrace.c index eed454f..9318316 100644 --- a/gdb/inf-ptrace.c +++ b/gdb/inf-ptrace.c @@ -414,7 +414,7 @@ inf_ptrace_wait (ptid_t ptid, struct target_waitstatus *ourstatus) /* Claim it exited with unknown signal. */ ourstatus->kind = TARGET_WAITKIND_SIGNALLED; ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN; - return minus_one_ptid; + return inferior_ptid; } /* Ignore terminated detached child processes. */ diff --git a/gdb/infrun.c b/gdb/infrun.c index cd809ed..1019f1b 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -2265,6 +2265,7 @@ handle_inferior_event (struct execution_control_state *ecs) case TARGET_WAITKIND_EXITED: if (debug_infrun) fprintf_unfiltered (gdb_stdlog, "infrun: TARGET_WAITKIND_EXITED\n"); + inferior_ptid = ecs->ptid; target_terminal_ours (); /* Must do this before mourn anyway */ print_stop_reason (EXITED, ecs->ws.value.integer); @@ -2283,6 +2284,7 @@ handle_inferior_event (struct execution_control_state *ecs) case TARGET_WAITKIND_SIGNALLED: if (debug_infrun) fprintf_unfiltered (gdb_stdlog, "infrun: TARGET_WAITKIND_SIGNALLED\n"); + inferior_ptid = ecs->ptid; stop_print_frame = 0; target_terminal_ours (); /* Must do this before mourn anyway */ diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c index 02bc103..63ff69c 100644 --- a/gdb/linux-thread-db.c +++ b/gdb/linux-thread-db.c @@ -889,8 +889,8 @@ thread_db_wait (ptid_t ptid, struct target_waitstatus *ourstatus) return ptid; if (ourstatus->kind == TARGET_WAITKIND_EXITED - || ourstatus->kind == TARGET_WAITKIND_SIGNALLED) - return pid_to_ptid (-1); + || ourstatus->kind == TARGET_WAITKIND_SIGNALLED) + return ptid; if (ourstatus->kind == TARGET_WAITKIND_EXECD) { diff --git a/gdb/rs6000-nat.c b/gdb/rs6000-nat.c index 6501def..efdfaa6 100644 --- a/gdb/rs6000-nat.c +++ b/gdb/rs6000-nat.c @@ -546,7 +546,7 @@ rs6000_wait (ptid_t ptid, struct target_waitstatus *ourstatus) /* Claim it exited with unknown signal. */ ourstatus->kind = TARGET_WAITKIND_SIGNALLED; ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN; - return minus_one_ptid; + return inferior_ptid; } /* Ignore terminated detached child processes. */ diff --git a/gdb/spu-linux-nat.c b/gdb/spu-linux-nat.c index 5d76300..7223a96 100644 --- a/gdb/spu-linux-nat.c +++ b/gdb/spu-linux-nat.c @@ -444,7 +444,7 @@ spu_child_wait (ptid_t ptid, struct target_waitstatus *ourstatus) /* Claim it exited with unknown signal. */ ourstatus->kind = TARGET_WAITKIND_SIGNALLED; ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN; - return minus_one_ptid; + return inferior_ptid; } store_waitstatus (ourstatus, status); |