summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2018-07-28 11:06:45 -0700
committerandroid-build-merger <android-build-merger@google.com>2018-07-28 11:06:45 -0700
commitae448671a766f995421d12812e3351db01b2331a (patch)
tree2e50c79e2729a3123d0ef362474fc19c99d5b139
parente4575dfcaa8145cc1f5795850ebd4efedb195403 (diff)
parente1bd9e74b04e79b25986d0a83d39b450b8138bd1 (diff)
downloadextras-ae448671a766f995421d12812e3351db01b2331a.tar.gz
Merge "Perfprofd: Only pick up FUNC symbols"
am: e1bd9e74b0 Change-Id: Ib8fe308a46c0a5e93a09c75892b995b9ade5661e
-rw-r--r--perfprofd/symbolizer.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/perfprofd/symbolizer.cc b/perfprofd/symbolizer.cc
index 2be6f96c..bde680f5 100644
--- a/perfprofd/symbolizer.cc
+++ b/perfprofd/symbolizer.cc
@@ -68,10 +68,15 @@ struct SimpleperfSymbolizer : public Symbolizer {
void LoadDso(const std::string& dso) {
SymbolMap data;
auto callback = [&data](const ElfFileSymbol& sym) {
- Symbol symbol;
- symbol.name = sym.name;
- symbol.length = sym.len;
- data.emplace(sym.vaddr, std::move(symbol));
+ if (sym.is_func) {
+ Symbol symbol;
+ symbol.name = sym.name;
+ symbol.length = sym.len;
+ if (sym.len == 0) {
+ LOG(ERROR) << "Symbol size is zero for " << sym.name;
+ }
+ data.emplace(sym.vaddr, std::move(symbol));
+ }
};
ElfStatus status = ParseSymbolsFromElfFile(dso, BuildId(), callback);
if (status != ElfStatus::NO_ERROR) {