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