diff options
author | Andreas Gampe <agampe@google.com> | 2018-07-28 11:06:45 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-07-28 11:06:45 -0700 |
commit | ae448671a766f995421d12812e3351db01b2331a (patch) | |
tree | 2e50c79e2729a3123d0ef362474fc19c99d5b139 | |
parent | e4575dfcaa8145cc1f5795850ebd4efedb195403 (diff) | |
parent | e1bd9e74b04e79b25986d0a83d39b450b8138bd1 (diff) | |
download | extras-ae448671a766f995421d12812e3351db01b2331a.tar.gz |
Merge "Perfprofd: Only pick up FUNC symbols"
am: e1bd9e74b0
Change-Id: Ib8fe308a46c0a5e93a09c75892b995b9ade5661e
-rw-r--r-- | perfprofd/symbolizer.cc | 13 |
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) { |