platform_system_core/libunwindstack/include/unwindstack
Christopher Ferris 4ca98e18a4 Fix potential bad info in eh_frame_hdr.
Due to a bug, an elf can have FDEs with a length of zero, while still
having another FDE for the same pc with a non-zero length. The
eh_frame_hdr can sometimes point to the zero length FDE, but it should
have pointed to the non-zero length FDE. In order to fix this, if the
eh_frame_hdr points at the zero length FDE then try and find the real FDE
directly from eh_frame.

The change cleans up and removes unused variables from DwarfEhFrameWithHdr
and changes the objects so that all of the DwarfSection objects and
DwarfEhFrameWithHdr object inherit from the same class.

Add new unit tests to verify this functionality.

Bug: 142483624

Test: Unit tests all pass.
Change-Id: I128a916e3ba378931de7d44ee15e57e24d4073df
2019-10-29 18:39:30 -07:00
..
DexFiles.h Revert "Check for data races when reading JIT/DEX entries." 2019-04-05 18:23:32 +00:00
DwarfError.h Add error propagation into Unwinder/Elf objects. 2018-01-24 17:50:46 -08:00
DwarfLocation.h Cache DWARF location rules for a given pc. 2018-03-29 14:47:13 +00:00
DwarfMemory.h Handle when bias is different in elf headers. 2019-10-08 17:36:06 +00:00
DwarfSection.h Fix potential bad info in eh_frame_hdr. 2019-10-29 18:39:30 -07:00
DwarfStructs.h Make the library usable as a library. 2017-07-14 12:20:23 -07:00
Elf.h Handle when bias is different in elf headers. 2019-10-08 17:36:06 +00:00
ElfInterface.h Handle when bias is different in elf headers. 2019-10-08 17:36:06 +00:00
Error.h Fix pc/function name for signal handler frame. 2019-04-12 17:23:18 -07:00
Global.h Verify that the elf matches the expected arch. 2018-10-29 18:08:09 -07:00
JitDebug.h Revert "Check for data races when reading JIT/DEX entries." 2019-04-05 18:23:32 +00:00
LocalUnwinder.h Add a specialized LocalUnwinder object. 2018-05-23 20:02:30 -07:00
Log.h Make the library usable as a library. 2017-07-14 12:20:23 -07:00
MachineArm.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
MachineArm64.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
MachineMips.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
MachineMips64.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
MachineX86.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
MachineX86_64.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
MapInfo.h Handle when bias is different in elf headers. 2019-10-08 17:36:06 +00:00
Maps.h Fix LocalUpdatableMaps 2019-09-16 18:28:38 -07:00
Memory.h Internalize subclasses of Memory 2019-06-11 12:09:18 -07:00
Regs.h Add unistd.h to includes in Regs.h 2019-03-08 15:04:48 -08:00
RegsArm.h libunwindstack: add Regs::Clone. 2018-04-20 13:23:20 -07:00
RegsArm64.h libunwindstack: add Regs::Clone. 2018-04-20 13:23:20 -07:00
RegsGetLocal.h Allow to get raw register data on all platforms. 2018-08-08 11:19:41 +01:00
RegsMips.h libunwindstack: add Regs::Clone. 2018-04-20 13:23:20 -07:00
RegsMips64.h libunwindstack: add Regs::Clone. 2018-04-20 13:23:20 -07:00
RegsX86.h libunwindstack: add Regs::Clone. 2018-04-20 13:23:20 -07:00
RegsX86_64.h libunwindstack: add Regs::Clone. 2018-04-20 13:23:20 -07:00
UcontextArm.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
UcontextArm64.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
UcontextMips.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
UcontextMips64.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
UcontextX86.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
UcontextX86_64.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
Unwinder.h Add test of undefined return address. 2019-08-30 23:29:34 -07:00
UserArm.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
UserArm64.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
UserMips.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
UserMips64.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
UserX86.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
UserX86_64.h Expose per arch headers. 2018-02-08 19:29:08 -08:00