This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: determine whether code is running in a signal handler context



On 27/11/2017 10:51, Florian Weimer wrote:
> On 11/27/2017 01:50 PM, Yubin Ruan wrote:
>> 2017-11-27 19:55 GMT+08:00 Florian Weimer <fweimer@redhat.com>:
>>> On 11/27/2017 09:42 AM, Yubin Ruan wrote:
>>>>
>>>> Still remember this thread? It turn out that determining whether or not
>>>> you
>>>> are currently in a signal handler is trivial with libunwind:
>>>
>>>
>>> This is incorrect.  libunwind (or any other unwinder) relies on information
>>> which is not always available.
>>
>> what information?
> 
> Unwind tables.  A correct stack pointer or frame pointer.
> 
> Florian

Just check libunwind usage and implementation for unw_is_signal_frame and
you will notice a lot of ad-hoc and heuristics which may or not fail
depending of the underlying system and binary. Also unw_is_signal_frame
is not implemented for all architectures or for all OS, it is hardly a
portable interface to rely on.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]