[roll] Roll fuchsia [ffx][trace] Refactor trace post-processing

This is a refactor that should have equivalent behavior, but that will
make the next changes I need to make to IPC trace symbolization simpler.
Specifically, to correctly generate round-trip flow messages for async
two-way FIDL calls we need a two-pass approach.

This moves from having a TraceProcessor struct that you set up with some
state and then consume with its run method, just have a
process_trace_file function that takes all of the state and
configuration and returns the result. This makes the lifetime of some of
the state and configuration simpler to reason about.

Along the way I added a couple of helpers to abstract away some of the
trace file handling.

First a TraceIterator that wraps the SessionParser to provide an
iterator yielding the parsed and raw form of each record in the trace.

Secondly the process_event_records function that parses a trace buffer
(using TraceIterator) and passes every record that is an event through a
callback function. This function can manipulate the contents of the
record and return a revised value.

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1230508
Original-Revision: f61e0bb8f9103ef87bf44bee84ce50635ce53fcc
GitOrigin-RevId: 0d93284e5f795b6666493d3ccaae5905e280c9a8
Change-Id: If92b18efc2f5fbe50cc9dfa65de0899ea4f3e0a2
1 file changed
tree: c36ed27f799dd819c7a43cedff04b7f5abf21df8
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.