pprof_builder: use trace_processor for demangling, and put obfuscated java frame names in system_name

This deduplicates code and takes advantage of the more powerful
demangling in trace processor.

One small side change is that if we see an obfuscated java method name
such as "A.b", and have deobfuscation packets with the full name, the
resulting pprof proto now has the human-readable name in Function.name,
and the obfuscated name in Function.system_name. This is the same as
what we do for mangled & demangled native frames. Previously the code
used the deobfuscated name for both name and system_name. Note that I
don't think any tools we use actually care about system_name, but I'm
retaining that info since it can still be investigated via the pprof
cmdline.

Bug: 204297290
Change-Id: Ic97cfbc98258d95c38df5a18981fb5b7de22bd52
1 file changed
tree: d809538fe9c1110da6e0b7a4e443ea76cb33682c
  1. .github/
  2. bazel/
  3. build_overrides/
  4. buildtools/
  5. debian/
  6. docs/
  7. examples/
  8. gn/
  9. include/
  10. infra/
  11. protos/
  12. python/
  13. src/
  14. test/
  15. tools/
  16. ui/
  17. .clang-format
  18. .clang-tidy
  19. .gitattributes
  20. .gitignore
  21. .gn
  22. .style.yapf
  23. Android.bp
  24. Android.bp.extras
  25. BUILD
  26. BUILD.extras
  27. BUILD.gn
  28. CHANGELOG
  29. codereview.settings
  30. DIR_METADATA
  31. heapprofd.rc
  32. LICENSE
  33. meson.build
  34. METADATA
  35. MODULE_LICENSE_APACHE2
  36. OWNERS
  37. perfetto.rc
  38. PerfettoIntegrationTests.xml
  39. PRESUBMIT.py
  40. README.chromium
  41. README.md
  42. TEST_MAPPING
  43. traced_perf.rc
  44. WORKSPACE
README.md

Perfetto - System profiling, app tracing and trace analysis

Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.

See https://perfetto.dev/docs or the /docs/ directory for documentation.