[llvm-bugs] [Bug 43488] New: libunwind: _Unwind_GetIPInfo doesn't handle signal frames correctly

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Sep 27 15:01:21 PDT 2019


https://bugs.llvm.org/show_bug.cgi?id=43488

            Bug ID: 43488
           Summary: libunwind: _Unwind_GetIPInfo doesn't handle signal
                    frames correctly
           Product: libc++abi
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: All Bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: jgorbe at google.com
                CC: llvm-bugs at lists.llvm.org, mclow.lists at gmail.com

_Unwind_GetIPInfo has an output argument which is a flag indicating whether the
returned IP points before or after the next instruction to be executed.

This flag is currently always set to 0 (see
https://github.com/llvm-mirror/libunwind/blob/master/src/UnwindLevel1-gcc-ext.c#L224).
Therefore, when the caller of _GetIPInfo uses this flag to decide if it should
decrement the returned IP to get the actual address of the next instruction to
be executed, it will always decrement.

This is wrong for signal frames (where _Unwind_GetIPInfo should set the flag to
1), and the caller might even end up looking at a different function if the
returned IP was pointing to the first instruction of a function.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190927/c9f38d11/attachment.html>


More information about the llvm-bugs mailing list