Hi,
Anton Kolesov wrote,

> An issue has been found with current implementation of ARC signal restorer
> 
> function in uClibc and how GDB handles it. When debugger information is not
> 
> present, everything worked fine, because GDB would use a built-in logic to
> 
> determine if function is a signal restorer. However when debugging information
> 
> is present, debugger would rely solely on it and wouldn't use ARC-specific
> 
> functions to detect signal handler frames. Because debug information for 
> signal
> restorer is generated
> 
> completely by the compiler, it lacks a marker, that identifies this as a
> 
> signal frame that requires special handling. While it is possible to insert
> 
> that marker via inline assembly, that still doesn't solve the whole problem,
> 
> because some other expectations are not met by the debug information - there
> 
> is no "nop" in front of the function, needed to fool debugger into thinking
> 
> that this was a function call, and references to previous frame information
> 
> need to be described manually. The simplest way to fix the problem is just
> 
> to make sure that signal restorer function will not have any debug function
> 
> at all, which can be done by writing it in assembly.
> 
>  
> 
> Alternative, more complex solution, where debug information for signal
> 
> frame is manually defined can be found in
> 
> glibc/sysdeps/unix/sysv/linux/x86_64/sigaction.c [1].
> 
>  
> 
> [1] https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/
> x86_64/sigaction.c;hb=HEAD
> 
>  
> 
> Signed-off-by: Anton Kolesov <anton.kole...@synopsys.com>

Applied and pushed,
 Thx
  Waldemar
_______________________________________________
devel mailing list
devel@uclibc-ng.org
https://mailman.uclibc-ng.org/cgi-bin/mailman/listinfo/devel

Reply via email to