[all-commits] [llvm/llvm-project] fb1abe: [libunwind][DWARF] Fix end of .eh_frame calculation

Ryan Prichard via All-commits all-commits at lists.llvm.org
Wed Sep 16 19:02:19 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: fb1abe00635c1ec28e55921709904d5ca2e86a74
      https://github.com/llvm/llvm-project/commit/fb1abe00635c1ec28e55921709904d5ca2e86a74
  Author: Ryan Prichard <rprichard at google.com>
  Date:   2020-09-16 (Wed, 16 Sep 2020)

  Changed paths:
    M libunwind/src/AddressSpace.hpp
    M libunwind/src/DwarfParser.hpp
    M libunwind/src/FrameHeaderCache.hpp
    M libunwind/src/UnwindCursor.hpp
    M libunwind/test/frameheadercache_test.pass.cpp

  Log Message:
  -----------
  [libunwind][DWARF] Fix end of .eh_frame calculation

 * When .eh_frame is located using .eh_frame_hdr (PT_GNU_EH_FRAME), the
   start of .eh_frame is known, but not the size. In this case, the
   unwinder must rely on a terminator present at the end of .eh_frame.
   Set dwarf_section_length to UINTPTR_MAX to indicate this.

 * Add a new field, text_segment_length, that the FrameHeaderCache uses
   to track the size of the PT_LOAD segment indicated by dso_base.

 * Compute ehSectionEnd by adding sectionLength to ehSectionStart,
   never to fdeHint.

Fixes PR46829.

Differential Revision: https://reviews.llvm.org/D87750




More information about the All-commits mailing list