platform_system_core/libunwindstack
David Srbecky 12d902961b Cache DWARF location rules for a given pc.
Decoding the DWARF opcodes is expensive so make sure we cache it.

This speeds unwinding in simpleperf by over a factor of 3x.

Add unit tests for this new behavior.

Bug: 77258731

Test: libbacktrace/libunwindstack unit tests on host and target.
Test: Ran debuggerd -b on various processes on target.
Change-Id: Ia516c0fa5d3e5f76746190bb4b6fdf49fd1c9388
(cherry picked from commit 3386ebade2)
2018-03-29 08:47:49 -07:00
..
include/unwindstack Cache DWARF location rules for a given pc. 2018-03-29 08:47:49 -07:00
tests Cache DWARF location rules for a given pc. 2018-03-29 08:47:49 -07:00
tools Handle ARM thumb function symbols. 2018-03-15 19:28:23 -07:00
.clang-format Use the 2 space clang format for libunwindstack. 2017-03-21 10:41:45 -07:00
Android.bp Always set the sp reg to the cfa for DWARF. 2018-03-19 11:11:19 -07:00
ArmExidx.cpp Expose per arch headers. 2018-02-08 19:29:08 -08:00
ArmExidx.h Add error propagation into Unwinder/Elf objects. 2018-01-24 17:50:46 -08:00
AsmGetRegsMips.S Add libunwindstack support for Mips and Mips64 2017-12-11 15:44:40 +01:00
AsmGetRegsMips64.S Add libunwindstack support for Mips and Mips64 2017-12-11 15:44:40 +01:00
AsmGetRegsX86.S Fix wrong mov instruction size. 2018-01-25 11:44:19 -08:00
AsmGetRegsX86_64.S Add full support for initing registers. 2017-07-11 12:15:54 -07:00
Check.h Add error propagation into Unwinder/Elf objects. 2018-01-24 17:50:46 -08:00
DexFile.cpp Remove dependency on -no_art variant 2018-02-07 15:19:22 -08:00
DexFile.h Load dex files from ART-specific data structure. 2018-02-02 15:03:00 -08:00
DexFiles.cpp Adjust DEX file reading to follow layout changes in ART. 2018-02-16 14:54:49 +00:00
DwarfCfa.cpp Cache DWARF location rules for a given pc. 2018-03-29 08:47:49 -07:00
DwarfCfa.h Add error propagation into Unwinder/Elf objects. 2018-01-24 17:50:46 -08:00
DwarfDebugFrame.h Add support for only a .eh_frame. 2017-11-07 13:22:39 -08:00
DwarfEhFrame.h Expose per arch headers. 2018-02-08 19:29:08 -08:00
DwarfEhFrameWithHdr.cpp Fix off by 4 error handling eh_frame hdr. 2018-02-10 17:11:23 -08:00
DwarfEhFrameWithHdr.h Add support for only a .eh_frame. 2017-11-07 13:22:39 -08:00
DwarfEncoding.h Make the library usable as a library. 2017-07-14 12:20:23 -07:00
DwarfMemory.cpp unwindstack: rename Memory::Read to ReadFully. 2017-11-15 15:38:13 -08:00
DwarfOp.cpp Implement new DEX PC lookup scheme. 2018-02-13 16:45:38 -08:00
DwarfOp.h Implement new DEX PC lookup scheme. 2018-02-13 16:45:38 -08:00
DwarfSection.cpp Cache DWARF location rules for a given pc. 2018-03-29 08:47:49 -07:00
Elf.cpp Modify elf cache to handle elf_offsets properly. 2018-02-16 14:52:38 -08:00
ElfInterface.cpp Fix soname reading code. 2018-02-15 17:57:13 -08:00
ElfInterfaceArm.cpp Always set the sp reg to the cfa for DWARF. 2018-03-19 11:11:19 -07:00
ElfInterfaceArm.h Handle ARM thumb function symbols. 2018-03-15 19:28:23 -07:00
JitDebug.cpp Load dex files from ART-specific data structure. 2018-02-02 15:03:00 -08:00
Log.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
MapInfo.cpp Modify elf cache to handle elf_offsets properly. 2018-02-16 14:52:38 -08:00
Maps.cpp Fix issues in libunwindstack. 2017-12-15 11:17:45 -08:00
Memory.cpp Add ability to read jit gdb data. 2018-01-12 11:18:42 -08:00
OWNERS Add OWNERS. 2017-12-07 13:30:03 -08:00
Regs.cpp Expose per arch headers. 2018-02-08 19:29:08 -08:00
RegsArm.cpp Fix null pointer dereference in RegsArm. 2018-03-28 20:52:52 -07:00
RegsArm64.cpp Fix null pointer dereference in RegsArm. 2018-03-28 20:52:52 -07:00
RegsInfo.h Implement new DEX PC lookup scheme. 2018-02-13 16:45:38 -08:00
RegsMips.cpp Fix null pointer dereference in RegsArm. 2018-03-28 20:52:52 -07:00
RegsMips64.cpp Fix null pointer dereference in RegsArm. 2018-03-28 20:52:52 -07:00
RegsX86.cpp Fix null pointer dereference in RegsArm. 2018-03-28 20:52:52 -07:00
RegsX86_64.cpp Fix null pointer dereference in RegsArm. 2018-03-28 20:52:52 -07:00
Symbols.cpp Add ability to read jit gdb data. 2018-01-12 11:18:42 -08:00
Symbols.h Add ability to read jit gdb data. 2018-01-12 11:18:42 -08:00
Unwinder.cpp Remove leftover commented out code. 2018-03-06 17:14:41 -08:00