Tracealyzer——Vertical Trace View

This is the main view of Percepio Tracealyzer, showing all recorded events on a vertical timeline going downwards. The colored bars show scheduling, with fragments of actors displayed as color-coded rectangles.

By actor we mean an execution context - a task or ISR. Each actor has a unique color, based on its scheduling priority. The default color scheme is the natural light spectrum, going from red (high priority) to blue (low priority), and finally light gray for the idle task. The exact colors used depends on the number of actors in the trace and their relative priorities.

The color scheme can be changed and you can even set your own custom colors, see View -> Trace View Settings -> Set Color Scheme.


To see a horizontal scheduling view, use View -> Horizontal View. See the Horizontal Trace View for more information about this view.

To the far left are labels showing actor names. When zooming out, the name labels are filtered so that only the most important ones are shown. Repeated labels of the same actor are then hidden, in favor of labels for less frequent actors. However, there are always at least one label per visible actor, and you can click in the trace to show the corresponding actor name label.

View Modes

The execution of tasks and interrupts can be visualized using different visualization modes, which you can quickly switch between to get best clarity in each situation. The modes are:

Gantt View Mode Shows one column per task and interrupt. This is best for spotting execution patterns, rare tasks or interrupts.
(Default shortcut key "G")
Merged View Mode Shows all tasks and interrupts in a single column, with sideway indents to show preemption and blocking. This gives a more compact display compared to Gantt View Mode and the best sense of execution order and preemptions hot-spots. 
(Default shortcut key "M")
Split View Mode Shows tasks and interrupts in two columns, with indents like in the Merged View Mode. This removes the "noise" from interrupts by presenting them separately. 
(Default shortcut key "S")
Flat View Mode Shows all tasks and interrupts in one single column. 
(Default shortcut key "F")

Events

The main view also show event labels of different types, notices, service calls and user events, if enabled in the visibility filter in the lower right. The events are shown as color coded labels to the right of the fragment in which they occur.

Events labels are shown in different colors depending on type:

  • Red labels - blocking service calls.
  • Green labels - successful return of blocking service calls.
  • White labels - service calls that completed without blocking.
  • Orange labels - service calls that returned due to a timeout.
  • Yellow labels - user events.
  • Light blue labels - notices, such as "Actor Ready" - when tasks become ready to execute.

Note that delay calls are shown in white, not red, even though they block the executing task. This since delays are unconditional blocking, and the sole purpose of these service calls. The red, green and orange labels are used only for blocking on shared resources, e.g., message queues, semaphores and mutexes, where the blocking may not be intentional and thus of greater interest to study.

Clicking on a task or ISR fragment selects the corresponding actor instance and highlights it. You can follow the execution of the selected actor using the "Previous" and "Next" buttons in Selection Details Clicking an event label selects and highlights both the actor instance and the event. When an actor instance is selected, the Actor Information display is updated, as illustrated above. This is a tree structure containing a lot of information, both general statistics of the actor and information about the specific instance. Most tree nodes that refer to a particular point in the trace are links to that location. By double-clicking them you navigate the trace view to that position. The linked tree nodes include all "Lowest" and "Highest", Triggered By", "Triggers" as well as the list of events in the end.

Double-clicking on an actor opens the Instance Details view, which gives lots of information focused around that actor. Double-clicking on a system call opens a focused view showing a list of all related events, e.g., the Object History View. This shows all service calls on a selected object, i.e., a message queue, semaphore or mutex. Double-clicking on a user event shows the Event Log, with filters applied.

When selecting a blocking call (red label) or a resume from blocking (green label), the matching event (call or return) event is also highlighted. You may jump to that event by using the button in Selection Details pressing F8, or by using the context menu option "Find Entry/Exit of Blocking Service Call".

Note

When there are too many events in the current view to fit on the screen, they'll be hidden and replaced by the text X events not shown. If this happens, zoom in or use the visibility filter to reduce the number of events. If the number of events for a selected actor is not too many, they will be shown even if the rest of the events are hidden.

Note

If a large number of events are hidden, it is possible to see where they are located with the event hotspots; gray rectangles showing where the events are located. The hotspots can be hidden using View -> Event Hotspots.

Zoom and navigation features

To navigate the trace, you can use the mouse wheel or the scroll bar (in the right). You can also drag the view by holding down the mouse wheel or middle mouse button. The arrow buttons and page up/down buttons can also be used when the trace view area has focus.

You can select an interval by holding in the left mouse button. By right-clicking on the selection, you open a context menu with various options for the selection interval, such as Zoom In.

Note
When searching for a particular location, it is often easier to use the  Finder or one of the graphical overviews to find it. When using another view to navigate the trace, you can click or double click to focus the trace view on this location. All graphical views also support selecting a time interval (by pressing the left mouse button and dragging) and showing this interval in the trace view.

To zoom in or out, use the zoom buttons on the tool panel, the numpad + and - buttons or the zoom options in the right-click menu.

You can also zoom with your mouse wheel when holding down the Ctrl key. The scroll-to-zoom behavior is always active when Scroll Lock is enabled. If your mouse features back and forward buttons, you can use these to quickly zoom in and out.

Advanced features

Percepio Tracealyzer can identify activation causes for actor instances. For example, an instance might be activated when another actor sends to a queue or signals a semaphore. To go to the activation cause of the selected actor instance, press F9.

Percepio Tracealyzer can also identify instances triggered by the selected instance, either from the Actor Information display ("Triggers") or by pressing F10. If there are multiple instances activated by the selected instance, pressing F10 will display a menu where you can select the activated actor you wish to follow.

For service calls, you can go to the sending or receiving event with F11. For a semaphore, pressing F11 on a "SemaphoreTake" call will take you to the corresponding SemaphoreGive call. For a queue send, F11 will take you to the event where the particular data is received.

For blocking service call events, using F12 you can show the reason for the triggering/released blocking, if this is due to a system call. This is also available in the Actor Information display ("Triggered By"). This will in many cases produce the same result as using F11, but not always. For example, if a queue send blocks due to a full queue, F12 shows the most recent receive event since that allows the send operation to complete, while F11 shows the location where the received message was sent.


猜你喜欢

转载自blog.csdn.net/qingzhuyuxian/article/details/80519166
今日推荐