Correct load bias in symbolizer.

On Android 10, there is a bug in libunwindstack that would result in incorrect
relative pcs due to missing load bias. We can analyze the ELF file when
symbolizing, and if this happened, adjust the pc by the load_bias.


Test: symbolize Android 10 and Android 11 profile.
      For Android 10 profile, the load bias is corrected.
      For Android 11 profile, it is not.

Bug: 169148096
Change-Id: Ia65ee606b5fdb470740bcc037639e77c595eb31c
4 files changed
tree: 8821b9e01275ad0fefda185791902b4f007b0126
  1. bazel/
  2. build_overrides/
  3. buildtools/
  4. debian/
  5. docs/
  6. examples/
  7. gn/
  8. include/
  9. infra/
  10. protos/
  11. src/
  12. test/
  13. tools/
  14. ui/
  15. .clang-format
  16. .clang-tidy
  17. .gitignore
  18. .gn
  19. .style.yapf
  20. Android.bp
  21. Android.bp.extras
  22. BUILD
  23. BUILD.extras
  24. BUILD.gn
  25. CHANGELOG
  26. codereview.settings
  27. heapprofd.rc
  28. LICENSE
  29. METADATA
  30. MODULE_LICENSE_APACHE2
  31. OWNERS
  32. perfetto.rc
  33. PRESUBMIT.py
  34. README.chromium
  35. README.md
  36. TEST_MAPPING
  37. traced_perf.rc
  38. 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.