From 99fd9e3ee638d6a003da2a727786510ac9bf0b76 Mon Sep 17 00:00:00 2001 From: Stu Grossman Date: Thu, 25 Jun 1992 22:22:40 +0000 Subject: * procfs.c (child_resume): Work around Solaris (on Sparc) lossage where there is no place for nPC in prrun struct. --- gdb/procfs.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'gdb/procfs.c') diff --git a/gdb/procfs.c b/gdb/procfs.c index 251ddb4..b205c66 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -2039,8 +2039,18 @@ child_resume (step, signo) int signo; { errno = 0; - pi.prrun.pr_flags = PRSVADDR | PRSTRACE | PRSFAULT | PRCFAULT; + pi.prrun.pr_flags = PRSTRACE | PRSFAULT | PRCFAULT; + +#if !defined(sun) && !defined(sparc) +/* Can't do this under Solaris running on a Sparc, as there seems to be no + place to put nPC. In fact, if you use this, nPC seems to be set to some + random garbage. We have to rely on the fact that PC and nPC have been + written previously via PIOCSREG during a register flush. */ + pi.prrun.pr_vaddr = (caddr_t) *(int *) ®isters[REGISTER_BYTE (PC_REGNUM)]; + pi.prrun.pr_flags != PRSVADDR; +#endif + if (signo && !(signo == SIGSTOP && pi.nopass_next_sigstop)) { set_proc_siginfo (&pi, signo); -- cgit v1.1