|
From: Paul M. <pa...@sa...> - 2004-08-28 09:11:43
|
I was just looking at the recent CVS commit to add these lines to
vg_signals.c:
if (sigNo == VKI_SIGFPE) {
frame->sigInfo._sifields._sigfault._addr = (void *)tst->m_eip;
}
Are there perhaps other signals that also need this? SIGSEGV perhaps?
Paul.
|
|
From: Tom H. <th...@cy...> - 2004-08-28 09:36:17
|
In message <166...@ca...>
Paul Mackerras <pa...@sa...> wrote:
> I was just looking at the recent CVS commit to add these lines to
> vg_signals.c:
>
> if (sigNo == VKI_SIGFPE) {
> frame->sigInfo._sifields._sigfault._addr = (void *)tst->m_eip;
> }
>
> Are there perhaps other signals that also need this? SIGSEGV perhaps?
No, because for SEGV si_addr is the faulting address rather than the
address of the instruction that caused the fault. The faulting address
will be correct and doesn't need patching up. It's only code addresses
that need patching or they will point to the JITed code.
I think it's only SIGFPE that puts the instruction address there, but
shout if you find anything else that does.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|