On Apr 23, 9:48am, mar...@duskware.de (Martin Husemann) wrote: -- Subject: Re: CVS commit: src/tests/lib/libc/gen
| On Sun, Apr 22, 2012 at 08:25:11PM +0000, Christos Zoulas wrote: | > There is no portable way to do this; sigbus according to ToG does not | > define what si_addr contains. | | I read it differently: | | The <signal.h> header shall define the siginfo_t type as a structure, | which shall include at least the following members: | | int si_signo Signal number. | int si_code Signal code. | int si_errno If non-zero, an errno value associated with | this signal, as described in <errno.h>. | pid_t si_pid Sending process ID. | uid_t si_uid Real user ID of sending process. | void *si_addr Address of faulting instruction. | int si_status Exit value or signal. | long si_band Band event for SIGPOLL. | union sigval si_value Signal value. | | | This is from: | | http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/signal.h.html | | | I think we should modify the test to use RAS_START() and RAS_END() to verify | the faulting code address and ignore the associated data address. Keep reading and then it is the following table: Signal Member Value SIGILL, SIGFPE void * si_addr Address of faulting instruction. SIGSEGV, SIGBUS void * si_addr Address of faulting memory reference. SIGCHLD pid_t si_pid Child process ID. int si_status Exit value or signal. uid_t si_uid Real user ID of the process that sent the signal. [OB XSR] SIGPOLL long si_band Band event for POLL_IN, POLL_OUT, or POLL_MSG. christos