History log of /system/extras/simpleperf/read_elf.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f79a00874d415ba7e7fda01cf2eb76bf06e459a6 14-Nov-2016 Yabin Cui <yabinc@google.com> simpleperf: fix potential unaligned memory access.

1. It is reported that when elf section headers are malformed,
GetBuildIdFromNoteSection() aborts with SIGBUS. So fix it to
accept not 4 bytes aligned section data.
2. Fix potential unaligned memory access in ConvertBytesToValue().

Test: run simpleperf_unit_test.
Change-Id: I2e1612a6567978e0b526b2274377765ba2837ec2
/system/extras/simpleperf/read_elf.h
dec43c18d06415a955b8f32355bca925be901905 30-Jul-2016 Yabin Cui <yabinc@google.com> simpleperf: print warning message when failed to read symbol table from elf file.

Change return type of read elf functions to ElfStatus, and print warning message
based on situation.
Add corresponding test.

Bug: 29193936
Change-Id: Ie449f8be34cb579962cb73f4be3df9e4997270ca
Test: run simpleperf_unit_test.
/system/extras/simpleperf/read_elf.h
3e4c5950f3aafb0bf66544468d98ee3ec26b705c 27-Jul-2016 Yabin Cui <yabinc@google.com> simpleperf: use libevent in stat command.

Wrap libevent in IOEventLoop, use IOEventLoop in stat command.
Add corresponding tests.

Bug: http://b/30405638
Change-Id: I78b79e0eff1365ab46dde29c2a24a2def586af79
Test: run simpleperf_unit_test.
/system/extras/simpleperf/read_elf.h
be7ec66eaa4f995bd9068637f7c7d5718173922c 02-Mar-2016 Yabin Cui <yabinc@google.com> simpleperf: support building cts test.

1. build cts test libraries.
2. change tests to use tmpfile instead of perf.data.
3. support extracting testdata from cts test file.

Bug: 27387280
Change-Id: I7c5db77f3157d586d0c9beb446b247626e7cce36
/system/extras/simpleperf/read_elf.h
b1a885b014540a2f7798b5a35ea0f0ec150d93ee 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
/system/extras/simpleperf/read_elf.h
f831e6d12ca2298cb34b155a9d91ef002d0482f3 02-Feb-2016 Than McIntosh <thanm@google.com> Support profiling of shared libs embedded in APKs.

Some APKs contain shared libraries that the linker handles
by mmap'ing directly from their APKs (if the library is
uncompressed and the proper manifest flag is set). With
this patch simpleperf now breaks out samples on a per-li
basis and reports the name of the lib within the APK.
Example output:

Cmdline: /system/xbin/simpleperf record -a sleep 30
Samples: 140672 of event 'cpu-cycles'
Event count: 84111474884

Overhead Command Pid Tid Shared Object
90.22% b_open_from_apk 19066 19066
/data/app/com.android.frameworks.coretests.install_jni_lib_open_from_apk-2/base.apk!lib/armeabi-v7a/libgcdstuff.so
4.85% b_open_from_apk 19066 19066
/data/app/com.android.frameworks.coretests.install_jni_lib_open_from_apk-2/base.apk!lib/armeabi-v7a/libframeworks_coretests_jni.so
1.19% simpleperf 19085 19085 /system/lib/libc.so
...

Bug: 22560619
Change-Id: I1e0f2e155e03b33935eac24e104c3fd7b9a7e33c
/system/extras/simpleperf/read_elf.h
ffaa912ca48e87d25d516780c15cdd7c50de43db 16-Jan-2016 Yabin Cui <yabinc@google.com> Simpleperf: support build for windows.

Change-Id: I31554f36ee97eb0ae27bda9b77e29410776925e2
/system/extras/simpleperf/read_elf.h
797116bfb9ad10d858086680c7465d65c399ef6e 09-Dec-2015 Yabin Cui <yabinc@google.com> Simpleperf: check if elf file paths are valid before reading them.

Reading invalid file paths can cause troubles. For example,
reading /dev/zero can eat all memory.

Bug: 25194400
Change-Id: I4de17f4f9200a43b50a4efe4c42a6fd9eaec1ba6
/system/extras/simpleperf/read_elf.h
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/read_elf.h
39d3caeb60a913276a2bbaa35f6a28dc3284eb52 14-Jul-2015 Yabin Cui <yabinc@google.com> Simpleperf: support --vmlinux option in report command.

Bug: 22179177
Change-Id: I633da55c6bfcb106d69de9bda6b44bce24ffca8e
/system/extras/simpleperf/read_elf.h
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/read_elf.h
a5bdf0a31dc6e225c10b82840903de49535bf8fb 23-Jun-2015 Yabin Cui <yabinc@google.com> Simpleperf: exclude meaningless labels in aarch64.

Also remove the use of <elf.h> because of its conflicts with llvm.

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

Bug: 19483574
Change-Id: I2597d4a91fd9a6cfc5c15c8b637dc4ba5213ee56
/system/extras/simpleperf/read_elf.h
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/read_elf.h
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/read_elf.h
8f6225147c5b6cb2159a7f5cb0dab952ee0759df 06-May-2015 Yabin Cui <yabinc@google.com> Dump build_id feature in `simpleperf record`.

Bug: 19483574
Change-Id: Ie2acd8a157bca9ad3c01a2e4b37e139aba89670f
/system/extras/simpleperf/read_elf.h