1# Frequently Asked Questions 2 3## How do I open trace in UI from command line? 4 5When collecting traces from the command line, a convenient way to open traces 6is to use the [open\_trace\_in\_ui script](/tools/open_trace_in_ui). 7 8This can be used as follows: 9 10```sh 11curl -OL https://github.com/google/perfetto/raw/main/tools/open_trace_in_ui 12chmod +x open_trace_in_ui 13./open_trace_in_ui -i /path/to/trace 14``` 15 16If you already have a Perfetto checkout, the first two steps can be skipped. 17From the Perfetto root, run: 18 19```sh 20tools/open_trace_in_ui -i /path/to/trace 21``` 22 23## Why does Perfetto not support \<some obscure JSON format feature\>? 24 25The JSON trace format is considered a legacy trace format and is supported on a 26best-effort basis. While we try our best to maintain compatibility with the 27chrome://tracing UI and the [format spec](https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview#heading=h.nso4gcezn7n1) 28in how events are parsed and displayed, this is not always possible. 29This is especially the case for traces which are programmatically generated 30outside of Chrome and depend on the implementation details of chrome://tracing. 31 32If supporting a feature would introduce a misproportional amount of technical 33debt, we generally make the choice not to support that feature. Users 34are recommended to emit [TrackEvent](/docs/instrumentation/track-events.md) 35instead, Perfetto's native trace format. See 36[this guide](/docs/reference/synthetic-track-event.md) for how common JSON 37events can be represented using 38TrackEvent. 39 40## Why are overlapping events in JSON traces not displayed correctly? 41 42The Perfetto UI and trace processor do not support overlapping B/E/X events, in 43compliance with the 44[JSON spec](https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview#heading=h.nso4gcezn7n1). 45As stated in the spec, events are only allowed to perfecty nest. 46 47Users are recommended to emit 48[TrackEvent](/docs/instrumentation/track-events.md) 49instead, Perfetto's native trace format. See 50[this guide](/docs/reference/synthetic-track-event.md) for how common JSON 51events can be represented using 52TrackEvent. 53 54## How can I use Perfetto tooling without instrumenting my program? 55 56A common problem is that users want to use Perfetto analysis and visualization 57tooling but they don't want to instrument their program. This can be because 58Perfetto is not a good fit for their use-case or because they may already have 59an existing tracing system. 60 61The recommended approach for this is to emit Perfetto's native TrackEvent proto 62format. A reference guide for this is available 63[here](/docs/reference/synthetic-track-event.md). 64 65 66## My app has multiple processes. How can see all of them in the same trace? 67 68Use the [Tracing SDK](/docs/instrumentation/tracing-sdk.md#system-mode) in 69"system mode". All processes will connect to `traced` over a socket and traced 70will emit one trace with all processes. 71