2005-03-06  Roland McGrath  <roland@redhat.com>

	* strace.c (trace) [PTRACE_GETSIGINFO]: Fetch siginfo_t for SIGSEGV
	and SIGBUS signals, use si_addr in output.
diff --git a/strace.c b/strace.c
index ac83703..25f45c8 100644
--- a/strace.c
+++ b/strace.c
@@ -2240,6 +2240,15 @@
 				pc += (psr >> PSR_RI) & 0x3;
 				ptrace(PT_GETSIGINFO, pid, 0, (long) &si);
 				addr = (unsigned long) si.si_addr;
+#elif defined PTRACE_GETSIGINFO
+				if (WSTOPSIG(status) == SIGSEGV ||
+				    WSTOPSIG(status) == SIGBUS) {
+					siginfo_t si;
+					if (ptrace(PTRACE_GETSIGINFO, pid,
+						   0, &si) == 0)
+						addr = (unsigned long)
+							si.si_addr;
+				}
 #endif
 				printleader(tcp);
 				tprintf("--- %s (%s) @ %lx (%lx) ---",