Re: [patch, testsuite] gdb.base/savedregs.exp: SIGSEGV -> SIGILL

Yao Qi
2011-06-09T13:10:05Z

On 06/09/2011 07:17 PM, Mark Kettenis wrote:
>> Date: Thu, 09 Jun 2011 17:28:09 +0800
>> From: Yao Qi <yao@codesourcery.com>
>>
>> In current gdb.base/savedregs.exp, signal handler is installed for
>> signal SIGSEGV, and SIGSEGV is trigger by `*(char *)0 = 0;'. However,
>> on non-mmu uclinux system, writing to an address 0x0 doesn't trigger
>> SIGSEGV.
>>
>> In my patch, SIGILL is chosen to replace SIGSEGV. One assumption here
>> is that 0xffff is an invalid instruction on all ports.
>
> Please don't do this. You're changing the test significantly. And

I don't think the test is changed *significantly*. The purpose of
writing to zero, at least in this case, is to trigger a signal, and
check the register in signal trampoline frame. Either SIGSEGV or SIGILL
meets this need.

> there is no guarantee that 0xffff is an invalid instruction. Heck
> most platforms don't even have 16-bit instructions.

It is possible to find a `common' invalid instruction over all ports,
even 0xffff may not be.

--
Yao (é½å°§)