Turning a SIGSEGV into a regular function call under Linux, allowing throw
Steven Schveighoffer
schveiguy at yahoo.com
Wed Mar 14 13:53:46 PDT 2012
On Wed, 14 Mar 2012 16:45:49 -0400, Don Clugston <dac at nospam.com> wrote:
> On 14/03/12 21:31, Steven Schveighoffer wrote:
>> On Wed, 14 Mar 2012 16:08:29 -0400, Don Clugston <dac at nospam.com> wrote:
>>
>>> Now, your user space handler will cause another segfault when it does
>>> the mov [ESP], 0. I think that gives you an infinite loop.
>>
>> SEGFAULT inside a SEGV signal handler aborts the program (no way to turn
>> this off IIRC).
>>
>> -Steve
>
> But you're not inside the signal handler when it happens. You returned.
Then how does the signal handler do anything? I mean, doesn't it need a
stack? Or does it just affect register variables? Most signal handlers
are normal functions, and isn't there some usage of the stack to save
registers?
It seems there should be a way to turn off the signal handler during the
time when you are suspicous of the stack being the culprit, then re-engage
the signal handler before throwing the error.
-Steve
More information about the Digitalmars-d
mailing list