History log of /system/extras/simpleperf/dso.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
7288501a660ce2616539e8a963185d2f3c679729 15-Feb-2016 Yabin Cui <yabinc@google.com> simpleperf: report symbols of native libraries in apk file.

Changes included:
1. provide interface in read_apk.h to read build id and symbols.
2. report symbols of native libraries in apk file.
3. refactor code in read_elf.cpp and read_apk.cpp.
4. add verbose log.
5. add -o report_file_name option for report command.
6. add corresponding unit tests.

Bug: 26962895
Change-Id: I0d5398996e0c29dba4a6f5226692b758ca096bbd
(cherry picked from commit b1a885b014540a2f7798b5a35ea0f0ec150d93ee)
/system/extras/simpleperf/dso.cpp
66dd09e8e2407082ce93bf0784de641298131912 04-Dec-2015 Elliott Hughes <enh@google.com> Track rename from base/ to android-base/.

Change-Id: Ic15d4778c7accd1382de0b440a437aba2cf67016
/system/extras/simpleperf/dso.cpp
547c60e4dd29c5788d5948ad348acf33a55d6ed6 13-Oct-2015 Yabin Cui <yabinc@google.com> Simpleperf: fix some unknown symbols for report result.

Using debug shared libraries in /usr/lib/debug on linux host.
Match ip addresses with symbols by symbols' virtual addresses instead of
file offsets in elf file. Because symbols' file offsets in debug shared
libraries are different from those in original shared libraries.

Fix overlapped maps.

Bug: 24716851
Change-Id: I9cb64958c4de5c7a6c77c3febc5f689cf2df650f
/system/extras/simpleperf/dso.cpp
8a52e97bfd6e2c59ef48fedb277168a7bfbeec46 01-Oct-2015 Yabin Cui <yabinc@google.com> Simpleperf: warn if it can't read kernel symbols addresses.

And a little format adjustment.

Bug: 24404256
Change-Id: Ie8dcd37138a693df18101d415e6e3243f4963582
/system/extras/simpleperf/dso.cpp
3c8c21345478816dd0c70c096090b564c91bd9d2 14-Aug-2015 Yabin Cui <yabinc@google.com> Simpleperf: support dwarf callgraph in report command.

Use libbacktrace for stack unwinding.

Bug: 22229391
Change-Id: Iab35cdb52936c65c4728e23423ded83050f1db76
/system/extras/simpleperf/dso.cpp
cc2e59e2478d330c89eaceda0dcc1f05ee32fbf8 21-Aug-2015 Yabin Cui <yabinc@google.com> Simpleperf: use OneTimeFreeAllocator to allocate symbol names.

simpleperf report takes a lot of time mallocing and freeing memory.
This change reduces the time to free memory.

Before this change:
$sudo simpleperf stat simpleperf report
Performance counter statistics:

3,258,481,203 cpu-cycles # 2.290946 GHz (80%)
4,147,660,154 instructions # 0.785619 cycles per instruction (79%)

Total test time: 1.422330 seconds.

After this change:
$sudo simpleperf stat simpleperf report
Performance counter statistics:

1,699,221,386 cpu-cycles # 2.994754 GHz (79%)
2,739,945,156 instructions # 0.620166 cycles per instruction (81%)

Total test time: 0.567399 seconds.

This change also fix a bug in record_file_test.cpp.

Bug: 23387541

Change-Id: I59fc86ca54a6c09bd08eec8ada931ccff88d3102
/system/extras/simpleperf/dso.cpp
c84856093e8bf4350d30fc521dc0f1c800c5270b 21-Aug-2015 Yabin Cui <yabinc@google.com> Simpleperf: refactor dso.

Having DsoEntry and DsoFactory confuses me which part code should belong to.
This change merges the two into class Dso and makes things clear.
It is also a preparation for performance optimization in Dso.

Bug: 23387541
Change-Id: I41e773406a7f1582a11a18859df252ce8ea3acfa
/system/extras/simpleperf/dso.cpp
b10a8fb990f71351558ed07b84b57ad5cafe993a 19-Aug-2015 Yabin Cui <yabinc@google.com> Simpleperf: demangle symbols only when necessary.

Before this change:
$sudo simpleperf record -a sleep 1
$sudo simpleperf stat simpleperf report
Total test time: 4.088779 seconds.

After this change:
$sudo simpleperf record -a sleep 1
$sudo simpleperf stat simpleperf report
Total test time: 1.226267 seconds.

Change-Id: Ifc811f432ac69f770eeb5814e4983f6f19dbc909
/system/extras/simpleperf/dso.cpp
04c70a62b68c1a0c0f79392f335463a7ee044ba6 04-Aug-2015 Yabin Cui <yabinc@google.com> Simpleperf: don't check for empty build id.

Change-Id: I670ba4fa32aa764e49022abacd83ef1fdcfa7d0d
/system/extras/simpleperf/dso.cpp
ba50c4bba1c3ea7e98a475a3d2ae2e6c24ee81f2 21-Jul-2015 Yabin Cui <yabinc@google.com> Simpleperf: load symbols from dso file only when necessary.

Bug: 22630113
Change-Id: I12bb24ec02ba3ddb94bcb2a26ae2d6e7b445ed4d
/system/extras/simpleperf/dso.cpp
39d3caeb60a913276a2bbaa35f6a28dc3284eb52 14-Jul-2015 Yabin Cui <yabinc@google.com> Simpleperf: support --vmlinux option in report command.

Bug: 22179177
Change-Id: I633da55c6bfcb106d69de9bda6b44bce24ffca8e
/system/extras/simpleperf/dso.cpp
638c558339b7f1ae0ed95f64bcf7dbc5b238ed83 02-Jul-2015 Yabin Cui <yabinc@google.com> Simpleperf: check build id in report command.

1. refactor BuildId type.
2. check build id before parsing symbols in report command.

Bug: 22179177

Change-Id: Iefc797a88d4a168e109db786105120c8d6914369
/system/extras/simpleperf/dso.cpp
9fd3cc1048a3d0338df4a48760dfd655560992a1 26-Jun-2015 Yabin Cui <yabinc@google.com> Simpleperf: support build on mac.

Bug: 19483574
Change-Id: I6c28541944bc0a4e6fc07d7ea5a8fb5f71890510
/system/extras/simpleperf/dso.cpp
2c17e0db003baeb044bf3e13175f5d00c414c3fc 11-Jun-2015 Yabin Cui <yabinc@google.com> Simpleperf: parse prefixed symbol of linker.

Bug: 19483574
Change-Id: I2597d4a91fd9a6cfc5c15c8b637dc4ba5213ee56
/system/extras/simpleperf/dso.cpp
b378355f34b2b585eaf2be262bcd9baae9f3d36a 11-Jun-2015 Yabin Cui <yabinc@google.com> Simpleperf: improve symbol parsing.

Support c++ symbol demangling, and add option to disable it.
Add option to set symfs dir, so it can report on host.
Add label symbols, add add symbol length fixing for it.
Add two hacks about arm elf symbol parsing.

Bug: 19483574

Change-Id: I300d6c007c8634db382d0a50627b9cde1502df89
/system/extras/simpleperf/dso.cpp
ec12ed9010128483993a87d68edc02d3a89d56cf 08-Jun-2015 Yabin Cui <yabinc@google.com> Simpleperf: support symbol parsing in report command.

Also fix the storage of ProcessEntry.

Bug: 19483574
Change-Id: I2182a804f6ecbd28e7aa3c1a38a6f19b86f583c9
/system/extras/simpleperf/dso.cpp