TrackEvent: Make process/thread naming less of a footgun

When calling TrackEvent::Set{Process,Thread}Descriptor, it's tempting to
set the |name| field of the returned TrackDescriptor to record the name
of the thread or process, but this only ends up setting the name of the
track object which is associated with the thread or process, and is not
directly displayed by the UI.

Instead, one should name the thread or process by filling in the
{Process,Thread}Descriptor message inside the TrackDescriptor. This
patch makes the API more conducive to doing that by accepting
protos::gen track descriptors -- which are more easily mutated by the
user -- while maintaining backwards compatibility with the original
behavior.

Bug: 155076522
Change-Id: I7c8c9032c8e7d59a28c90c81a2b11424a7bce5e2
8 files changed
tree: 48c76e442da2a1395ac1f7a7aab0dc0065024aa6
  1. bazel/
  2. build_overrides/
  3. buildtools/
  4. debian/
  5. docs/
  6. gn/
  7. include/
  8. infra/
  9. protos/
  10. src/
  11. test/
  12. tools/
  13. ui/
  14. .clang-format
  15. .gitignore
  16. .gn
  17. .style.yapf
  18. Android.bp
  19. Android.bp.extras
  20. BUILD
  21. BUILD.extras
  22. BUILD.gn
  23. codereview.settings
  24. heapprofd.rc
  25. LICENSE
  26. METADATA
  27. MODULE_LICENSE_APACHE2
  28. OWNERS
  29. perfetto.rc
  30. PRESUBMIT.py
  31. README.chromium
  32. README.md
  33. TEST_MAPPING
  34. traced_perf.rc
  35. WORKSPACE
README.md

Perfetto - Performance instrumentation and tracing

Perfetto is an open-source project for performance instrumentation and tracing of Linux/Android/Chrome platforms and user-space apps.

See www.perfetto.dev for docs.

Contributing

See /docs/contributing.md for instructions.

The source-of-truth repo is Android's Gerrit. The GitHub repo is a read-only mirror.

Bugs

  • For bugs affecting Android or the tracing internals use the internal bug tracker (go/perfetto-bugs).
  • For bugs affecting Chrome use http://crbug.com, Component:Speed>Tracing label:Perfetto.

Community

You can reach us on our Discord channel. If you prefer using IRC we have an experimental Discord <> IRC bridge synced with #perfetto-dev on Freenode.