android_system_core/libunwindstack/tests
Christopher Ferris 60521c7d52 Speed up map creation.
- Rewrite the Maps::Parse to use open, and a buffer on the stack.
- Rewrite the line parser away from sscanf. The current way sscanf
  is used does not catch many malformed lines. In addition, this
  new version improves performance by 50% over sscanf on sailfish.
- Add a lot of unit tests for the parser to make sure there are
  no problems. In addition, add a special line that was not rejected
  with the previous version of the code.
- Add new accessor to get the map at a particular index.
- Add a backtrace benchmark for map creation for both new and old.

This cl results in ~5% speedup and makes the new unwinder map creation
about the same for 64 bit. It's still a bit slower, but not by much.
On 32 bit, we are still about 5% slower than the old creation method,
though.

Bug: 23762183

Test: libunwindstack unit tests pass. Ran the new benchmarks.
Change-Id: Id4431e539f400984e6fad62153fdf4152d518322
2017-08-23 15:43:39 -07:00
..
files Init .gnu_debugdata in GetElf(). 2017-06-30 17:24:58 -07:00
ArmExidxDecodeTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
ArmExidxExtractTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
DwarfCfaLogTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
DwarfCfaTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
DwarfDebugFrameTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
DwarfEhFrameTest.cpp Fix another set of bugs. 2017-08-10 17:37:32 -07:00
DwarfMemoryTest.cpp Fix another set of bugs. 2017-08-10 17:37:32 -07:00
DwarfOpLogTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
DwarfOpTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
DwarfSectionImplTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
DwarfSectionTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
ElfInterfaceArmTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
ElfInterfaceTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
ElfTest.cpp Add signal handling to the register object. 2017-07-18 17:27:48 -07:00
ElfTestUtils.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
ElfTestUtils.h Make the library usable as a library. 2017-07-14 12:20:23 -07:00
GenGnuDebugdata.cpp Add .gnu_debugdata support. 2017-06-28 15:23:10 -07:00
LogFake.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
LogFake.h Make the library usable as a library. 2017-07-14 12:20:23 -07:00
MapInfoCreateMemoryTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
MapInfoGetElfTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
MapsTest.cpp Speed up map creation. 2017-08-23 15:43:39 -07:00
MemoryBufferTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
MemoryFake.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
MemoryFake.h Make the library usable as a library. 2017-07-14 12:20:23 -07:00
MemoryFileTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
MemoryLocalTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
MemoryRangeTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
MemoryRemoteTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
MemoryTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
RegsFake.h Speed up StepIfSignalHandler path. 2017-07-19 21:35:46 +00:00
RegsStepIfSignalHandlerTest.cpp Speed up StepIfSignalHandler path. 2017-07-19 21:35:46 +00:00
RegsTest.cpp Speed up StepIfSignalHandler path. 2017-07-19 21:35:46 +00:00
SymbolsTest.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
UnwindTest.cpp Add signal handling to the register object. 2017-07-18 17:27:48 -07:00