*
* Note: used by core gdb and so uses the pseudo-pid (really tid).
*/
-ptid_t
+int
ptrace_wait (ptid_t ptid, int *status)
{
ttstate_t tsp;
if (errno == ESRCH)
{
*status = 0; /* WIFEXITED */
- return inferior_ptid;
+ return PIDGET (inferior_ptid);
}
warning ("Call of ttrace_wait returned with errno %d.",
errno);
*status = ttwait_return;
- return inferior_ptid;
+ return PIDGET (inferior_ptid);
}
real_pid = tsp.tts_pid;
*status = _SIGTRAP;
}
- target_post_wait (tsp.tts_pid, *status);
+ target_post_wait (pid_to_ptid (tsp.tts_pid), *status);
#ifdef THREAD_DEBUG
warning ("Internal error: process-wait failed.");
}
- return pid_to_ptid (return_pid);
+ return return_pid;
}
\f
if (t->am_pseudo && (t->pid != PIDGET (inferior_ptid)))
{
- /* TT_PROC_STOP doesn't require a subsequent ttrace_wait, as it
- * generates no event.
- */
- call_ttrace (TT_PROC_STOP,
+ call_ttrace (TT_PROC_EXIT,
t->pid,
TT_NIL,
TT_NIL,
TT_NIL);
-
- call_ttrace (TT_PROC_DETACH,
- t->pid,
- TT_NIL,
- (TTRACE_ARG_TYPE) TARGET_SIGNAL_0,
- TT_NIL);
}
t = t->next;
}
xfree (paranoia);
- call_ttrace (TT_PROC_STOP,
+ call_ttrace (TT_PROC_EXIT,
PIDGET (inferior_ptid),
TT_NIL,
TT_NIL,
{
register int i;
/* Round starting address down to longword boundary. */
- register CORE_ADDR addr = memaddr & -sizeof (TTRACE_XFER_TYPE);
+ register CORE_ADDR addr = memaddr & -(CORE_ADDR) sizeof (TTRACE_XFER_TYPE);
/* Round ending address up; get number of longwords that makes. */
register int count
= (((memaddr + len) - addr) + sizeof (TTRACE_XFER_TYPE) - 1)