Turning a SIGSEGV into a regular function call under Linux, allowing throw

deadalnix deadalnix at gmail.com
Wed Mar 14 13:26:09 PDT 2012


Le 14/03/2012 21:07, Vladimir Panteleev a écrit :
> On Wednesday, 14 March 2012 at 19:48:28 UTC, deadalnix wrote:
>> Le 14/03/2012 18:28, Vladimir Panteleev a écrit :
>>> On Wednesday, 14 March 2012 at 17:18:06 UTC, deadalnix wrote:
>>>> Le 14/03/2012 18:00, Vladimir Panteleev a écrit :
>>>>> On Wednesday, 14 March 2012 at 16:37:45 UTC, deadalnix wrote:
>>>>>> Le 14/03/2012 17:08, Vladimir Panteleev a écrit :
>>>>>>> On Wednesday, 14 March 2012 at 11:11:54 UTC, deadalnix wrote:
>>>>>>>> You are loosing EAX in the process.
>>>>>>>
>>>>>>> When would this matter? EAX is a scratch register per ABIs, no?
>>>>>>
>>>>>> You may want to return from the function the standard way an resume
>>>>>> operations. To implement a moving GC using page protection for
>>>>>> example.
>>>>>
>>>>> This doesn't have anything to do with turning signals into exceptions.
>>>>
>>>> No but this does, make sense to catch segfault and act according to it
>>>> to implement such a functionality. This is a very close problem.
>>>
>>> You can't resume D exceptions.
>>
>> I'm not talking about Exception anymore. In case of Exception, this
>> isn't a problem, but in case of regular return, this is.
>
> I don't understand how any of your posts are related to this thread at all.
>
> This thread is about turning SIGSEGV into an exception that 1) you can
> catch 2) will print a stack trace when uncaught. You've brought in stack
> overflows, moving garbage collectors, etc. I assure you, we are
> well-aware of the problems when using this exact code for other purposes.

The topic is *Turning a SIGSEGV into a regular function call under 
Linux, allowing throw*, not only Exception. I don't understand what is 
the problem here ? Can't we talk about how we could keep trash register 
clean in case we don't throw  - this doesn't make much sense if we throw 
anyway - ?

What your are mentioning here is already done. Nothing to discuss about 
that. This is why I try to jump into the next topic : how can we do more 
than just throwing.


More information about the Digitalmars-d mailing list