ppid = pi->prstatus.pr_ppid;
signo = SIGKILL;
- ioctl (pi->fd, PIOCKILL, &signo);
#ifdef PROCFS_NEED_PIOCSSIG_FOR_KILL
- /* Alpha OSF/1 procfs needs an additional PIOCSSIG call with
- a SIGKILL signal to kill the inferior, otherwise it might remain
- stopped with a pending SIGKILL.
+ /* Alpha OSF/1 procfs needs a PIOCSSIG call with a SIGKILL signal
+ to kill the inferior, otherwise it might remain stopped with a
+ pending SIGKILL.
We do not check the result of the PIOCSSIG, the inferior might have
died already. */
{
newsiginfo.si_uid = getuid ();
ioctl (pi->fd, PIOCSSIG, &newsiginfo);
}
+#else
+ ioctl (pi->fd, PIOCKILL, &signo);
#endif
close_proc_file (pi);
prfillset (&pi->prrun.pr_fault);
prdelset (&pi->prrun.pr_fault, FLTPAGE);
-#ifdef PROCFS_DONT_TRACE_IFAULT
- /* Tracing T_IFAULT under Alpha OSF/1 causes a `floating point enable'
- fault from which we cannot continue (except by disabling the
- tracing). We rely on the delivery of a SIGTRAP signal (which is traced)
- for the other T_IFAULT faults if tracing them is disabled. */
- prdelset (&pi->prrun.pr_fault, T_IFAULT);
+#ifdef PROCFS_DONT_TRACE_FAULTS
+ premptyset (&pi->prrun.pr_fault);
#endif
if (ioctl (pi->fd, PIOCWSTOP, &pi->prstatus) < 0)
prfillset (&pi->prrun.pr_fault);
prdelset (&pi->prrun.pr_fault, FLTPAGE);
-#ifdef PROCFS_DONT_TRACE_IFAULT
- /* Tracing T_IFAULT under Alpha OSF/1 causes a `floating point enable'
- fault from which we cannot continue (except by disabling the
- tracing). We rely on the delivery of a SIGTRAP signal (which is traced)
- for the other T_IFAULT faults if tracing them is disabled. */
- prdelset (&pi->prrun.pr_fault, T_IFAULT);
+#ifdef PROCFS_DONT_TRACE_FAULTS
+ premptyset (&pi->prrun.pr_fault);
#endif
if (ioctl (pi->fd, PIOCSFAULT, &pi->prrun.pr_fault))
#ifdef PROCFS_DONT_PIOCSSIG_CURSIG
/* With Alpha OSF/1 procfs, the kernel gets really confused if it
- receives a PIOCSSSIG with a signal identical to the current signal,
+ receives a PIOCSSIG with a signal identical to the current signal,
it messes up the current signal. Work around the kernel bug. */
if (signo == pip -> prstatus.pr_cursig)
return;
(sip -> si_signo == SIGSEGV) ||
(sip -> si_signo == SIGBUS))
{
- printf_filtered ("addr=%#x ", sip -> si_addr);
+ printf_filtered ("addr=%#lx ",
+ (unsigned long) sip -> si_addr);
}
else if ((sip -> si_signo == SIGCHLD))
{
if ((sip -> si_signo == SIGILL) ||
(sip -> si_signo == SIGFPE))
{
- printf_filtered ("\t%-16#x %s.\n", sip -> si_addr,
+ printf_filtered ("\t%#-16lx %s.\n",
+ (unsigned long) sip -> si_addr,
"Address of faulting instruction");
}
else if ((sip -> si_signo == SIGSEGV) ||
(sip -> si_signo == SIGBUS))
{
- printf_filtered ("\t%-16#x %s.\n", sip -> si_addr,
+ printf_filtered ("\t%#-16lx %s.\n",
+ (unsigned long) sip -> si_addr,
"Address of faulting memory reference");
}
else if ((sip -> si_signo == SIGCHLD))
{
return(1);
}
-#ifdef TARGET_CAN_USE_HARDWARE_WATCHPOINT
+#ifdef TARGET_HAS_HARDWARE_WATCHPOINTS
\f
/* Insert a watchpoint */
int
procfs_mourn_inferior, /* to_mourn_inferior */
procfs_can_run, /* to_can_run */
procfs_notice_signals, /* to_notice_signals */
+ 0 /* to_thread_alive */
procfs_stop, /* to_stop */
process_stratum, /* to_stratum */
0, /* to_next */