Refactorings in preparation for tracebox

Minor refactoring in prepration for the next CLs:
- Split perfetto_cmd's main() into two stages, one
  that does the cmdline parsing and one that connects
  to traced and does the rest. This will be used to
  parse the cmdline before deciding to spawn the
  services.
- Print usage on stderr rather than via ELOG. ELOG
  adds an unaesthetic source+line number and also
  spams logcat for no reasons.
- Move GetCurExecutablePath() from test/utils to
  utils as it will be soon required in production
  code.

#fixit

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