Service: plumb EnableTracing errors to the consumer

This change propagates service errors that occur when
invoking the consumer RPC method EnableTracing down to
the consumer. This allows the consumer to tell the user
what went wrong.
In order to do this, this CL moved TraceProcessor's
util::Status up to base and uses that in TracingServiceImpl.

Bug: chromium:1141377
Test: manual: run perfetto --txt ... passing a malformed config and
      see logging both on service and client side.
Change-Id: I827cef8357de219301102c56cb66de7d0b9a303d
26 files changed
tree: 396bbe450b31695b6042acb52a69715a1fcd1ea8
  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.