# Frequently Asked Questions ## How do I open trace in UI from command line? When collecting traces from the command line, a convenient way to open traces is to use the [open\_trace\_in\_ui script](/tools/open_trace_in_ui). This can be used as follows: ```sh curl -OL https://github.com/google/perfetto/raw/master/tools/open_trace_in_ui chmod +x open_trace_in_ui ./open_trace_in_ui -i /path/to/trace ``` If you already have a Perfetto checkout, the first two steps can be skipped. From the Perfetto root, run: ```sh tools/open_trace_in_ui -i /path/to/trace ``` ## Incorrectly displayed overlapping events in JSON trace NOTE: JSON is considered a legacy trace format and is supported on a best-effort basis. The Perfetto UI and trace processor do support overlapping B/E/X events, in compliance with the [JSON spec](https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview#heading=h.nso4gcezn7n1). As stated in the spec, events are only allowed to perfecty nest. Users are recommended to emit [TrackEvent](/docs/instrumentation/track-events.md) instead, Perfetto's native trace format. See [this guide](/docs/reference/synthetic-track-event.md) for how common JSON events can be represented using TrackEvent. ## How can I use Perfetto tooling without instrumenting my program? A common problem is that users want to use Perfetto analysis and visualization tooling but they don't want to instrument their program. This can be because Perfetto is not a good fit for their use-case or because they may already have an existing tracing system. The recommended approach for this is to emit Perfetto's native TrackEvent proto format. A reference guide for this is available [here](/docs/reference/synthetic-track-event.md).