CTF & Timeline Views User Guide

Make the most of the CTF tracing facilities and associated timeline views in the TEMU System Debugger.

Overview

The debugger can connect to a running TEMU instance using the TCF protocol and request Common Trace Format (CTF) data from software contexts. When tracing information is available it is presented in one or more timeline panels that allow you to see events, thread activity, variable changes and more. The timeline subsystem is designed to be flexible: you can zoom, pan, detach views, follow the latest data, and combine multiple series in a single container.

Getting Started with CTF Tracing

Enabling polling
  • In the main toolbar and under the CTF item, use the \[Start Polling] and \[Pause Polling] toolbar buttons to control automatic fetching of CTF data. Polling will continue in the background until you pause it or close the debugger.

  • The drop‑down list next to the buttons shows available software contexts; if none are selected the first context will be used.

  • The bottom status bar displays Simulated Real Time and other time messages as data arrives.

Variable sampling must be set in TEMU by creating a Trace Sampler model and connect it to the system timesource such as a cpu. Next attach properties of the models which will be displayed in series.
TraceSampler.new name=sam
connect-timesource obj=sam ts=l2-cpu
sam.add prop=wave.output
sam.add prop=wavier.output
sam.add prop=wavierer.output
sam.add prop=l2-cpu.pc

Timeline Container and Docking

The Timeline area is implemented as a dockable panel that you can move around, tile with other docks, or turn into a separate window. It is made up of a TimelineContainer which hosts one or more individual timelines.

  • Tabs appear along the top when multiple timelines are present. Click a tab to switch between them.

  • Right‑click a tab to open a context menu with the Pull Out Timeline action. This will detach the timeline into its own floating window.

  • Detached timelines remain linked to the container and will reattach when you close the floating window (unless you tagged them as transient).

Arranging Timelines

  • Drag the title bar of a dock to reposition it. Use the View menu to enable animated docks, nested docks, or tabbed docks.

  • You can have multiple timelines side‑by‑side or stacked vertically by dragging dock borders.

Working with a Single Timeline

Each timeline represents a sequence of events over time. It may contain multiple series (for example, variable values) or a single stream such as context‑switch events.

Event Timeline
Figure 1. Event Timeline with context switches and breakpoint events

Time Range and Current Time

  • The horizontal axis shows the current time range. You can set the span by dragging with the middle‑mouse button or using the zoom controls.

  • A vertical marker indicates the current time. It moves automatically when Follow Latest is enabled (see below) or you can click on the timeline to move it manually.

Variable Timeline
Figure 2. Variable Timeline with with 4 variable series set

Zooming and Panning

Mouse Wheel

rotate to zoom in (forward) or out (backward).

Middle‑Button Drag

click and hold the middle mouse button, then move left or right to pan the view.

Follow Latest

Right‑click anywhere on a timeline and choose Follow Latest from the context menu, or toggle the button in the timeline control bar. When enabled the view will automatically scroll so that the newest data points are always visible. This is especially handy during live polling.

Detaching Series

Some timelines (such as variable traces) may contain multiple named series within a single view. A context‑menu or toolbar action allows you to "pull out" individual series into their own timeline so you can compare or arrange them independently.

Variable Timeline Series Popouts
Figure 3. Variable series poped out from the main variable timeline view

Contexts and Events

The debugger displays the context identifier for the trace in the timeline header. Events are translated from raw CTF records into human‑readable entries such as thread switches, function calls, or variable updates.

  • Thread switch events are automatically highlighted and can optionally display the previous and next thread names.

  • You can inspect the fields of any event by hovering or using a dedicated event list (depending on the timeline type).

Event Timeline Thread Popout
Figure 4. Popout with thread information related to the clicked event

Breakpoint Integration

When you set breakpoints and run the debugger, the timeline controller may receive timestamps for each hit. These times appear as markers on suitable timelines, allowing you to correlate trace data with breakpoint activity.

Event Timeline breakpoint popout
Figure 5. Popout with breakpoint information related to the clicked event

Tips & Tricks

  • Use the View → Timeline menu or toolbar to show/hide the timeline dock on demand.

  • When the timeline window becomes crowded, detach some views and resize them independently.

  • Combine CTF data with logging and source views by arranging docks side by side – you can drag the timeline dock next to the log or source editor.

Troubleshooting

  • If no CTF contexts appear, ensure the TEMU instance was started with tracing enabled and that the TCF connection is active (check the status bar). Reconnect or restart polling if necessary.

  • If a detached timeline window disappears unexpectedly, look for a checkbox in its title bar labeled Keep on Close – disabling it will make the timeline transient.

Keyboard Shortcuts

  • Space – Open Variable timeline filter options.

  • Alt+←/→ – switch between timeline tabs (if numbered).

  • Ctrl+Wheel – zoom centered around cursor (if supported).

Appendix

CTF Contexts

A "context" typically corresponds to a running software process or thread within TEMU. You may see several contexts listed if the system under test has multiple processors or execution environments.

Timeline Types

The system supports different kinds of timeline widgets:

Variable Timelines

Shows numeric values over time and can be plotted on separate scales.

Event Timelines

Displays discrete events as markers or colored bands.

Custom Timelines

May be provided by plugins or future extensions.