History log of /system/extras/simpleperf/dwarf_unwind.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
aa0dd19abe684059d0595f343395183b864157d2 15-Dec-2016 Yabin Cui <yabinc@google.com> simpleperf: use per process maps.

Originally we use per thread maps, and copy the maps from parent thread
when processing ForkRecord. But there are situations that ForkRecords
are lost, then the new thread is left having no maps, which leads to unknown
dso/symbols.
To fix this, we can use per process maps. Even if ForkRecords are lost,
we know which process a SampleRecord belongs to, and can use the process maps.
This is reasonable because in most cases, new threads in the same thread group
are created with both CLONE_THREAD and CLONE_VM.

Bug: http://b/33503165
Test: run simpleperf_unit_test.
Change-Id: If84b6cdac39cd6ad4e441ed6d75ed879b86d1830
/system/extras/simpleperf/dwarf_unwind.cpp
417df291499b37f63fa9b930e081d80a25bf38ec 16-Nov-2016 Yabin Cui <yabinc@google.com> simpleperf: fix dumping arm regs on arm64 devices.

On arm64 devices, the kernel dumps arm64 regs
even for 32-bit processes. So we need to map
from arm64 registers to arm registers.

Bug: http://b/30974693
Test: run simpleperf manually on one app.
Change-Id: Iffeac9510b418b5dabc0604c16523887d63bba49
/system/extras/simpleperf/dwarf_unwind.cpp
8ce6814573e40d318a74681271bc82d0fb9a431c 05-Aug-2016 Yabin Cui <yabinc@google.com> simpleperf: fix arm unwinding.

Change-Id: Ie611504a7e5062c25466b59ebdcf8c33b51bf90c
Test: run simpleperf_unit_test.
/system/extras/simpleperf/dwarf_unwind.cpp
cf31e9d83d3fff0c0970aa344366136e4d5126a7 14-Jul-2016 Yabin Cui <yabinc@google.com> simpleperf: fix unwind stack size.

Currently, to work around the bug in N9, simpleperf uses
all dumped user stack for unwinding. However, not all of
the data is valid, which can make unwinding result annoying.
So fix this by using only valid stack data if dyn_size != 0.

Bug: 29574526
Test: run simpleperf_unit_test and use simpleperf manually.

Change-Id: Idaa82f3156215fc4fb902d96de290e43726b0e17
/system/extras/simpleperf/dwarf_unwind.cpp
eec606cfefcb8cb20ac0f9e3465daff09fb31ffd 07-Jul-2016 Yabin Cui <yabinc@google.com> simpleperf: fix build id check of files in symfs.

In dso.cpp, build_id_map_ should use path_ instead of GetAccessiblePath() as the key.
However, patch https://android-review.googlesource.com/#/c/175654/ wrongly used
GetAccessiblePath() as the key in build_id_map_. This patch fixes the error and add
corresponding test.

Check if file in symfs exists before using it as debug file path.
If the build id of debug file path doesn't match the one in build_id_map_, output
warning to user.

Bug: 28911532
Test: run simpleperf_unit_test.
Change-Id: I21bca508359a492245db4cba5d287005363cd465
/system/extras/simpleperf/dwarf_unwind.cpp
2019e836c606219397a70076d569184f84def905 18-May-2016 Chih-Hung Hsieh <chh@google.com> Fix misc-macro-parentheses warnings in simpleperf.

Bug: 28705665
Change-Id: I0521602cbca7eb3d2e242771da697dfab3fc727f
/system/extras/simpleperf/dwarf_unwind.cpp
4b6720d137c15b9485318255e89ffcd3c76ab579 31-Mar-2016 Yabin Cui <yabinc@google.com> simpleperf: loosen unwinding arch check for system wide collection.

When doing system wide collection, it is possible that there are
32-bit compat processes running on 64-bit devices. It is not proper
to abort in this situation. So loosen the check to allow it. Also
add corresponding test.

Bug: 27927427

Change-Id: I5c9253eb6e474497e4f37e234e0e523e141fab20
/system/extras/simpleperf/dwarf_unwind.cpp
257d5e69967941de7c5516a476397450063b8c3d 31-Mar-2016 Yabin Cui <yabinc@google.com> simpleperf: don't allow 64bit simpleperf unwinding 32bit processes.

Bug: 27927427
Change-Id: I87abc7f8d1f160da4366ed04db054206403bc803
/system/extras/simpleperf/dwarf_unwind.cpp
48460892306fbc232d7623b1aa5be1aefdc1a8a7 18-Mar-2016 Yabin Cui <yabinc@google.com> Simpleperf: remove dependency on global current_arch.

When running unit tests on arm64 devices:
[OK] ReportCommandTest.dwarf_callgraph
[OK] record_cmd.dwarf_callchain_sampling.
ERROR: can't unwind data recorded on a different architecture.

It is because ReportCommandtest.dwarf_callgraph opens a perf.data
recorded on x86_64, and changes current_arch. It causes a problem when
the test record_cmd.dwarf_callchain_sampling calls libbacktrace built
on aarch64. Athough it doesn't make the test fail, we should fix this.

Change-Id: I2cd70369a769ef2199cab2302b8b824369be0907
/system/extras/simpleperf/dwarf_unwind.cpp
66dd09e8e2407082ce93bf0784de641298131912 04-Dec-2015 Elliott Hughes <enh@google.com> Track rename from base/ to android-base/.

Change-Id: Ic15d4778c7accd1382de0b440a437aba2cf67016
/system/extras/simpleperf/dwarf_unwind.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/dwarf_unwind.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/dwarf_unwind.cpp