xy-Diagramm – Die Zieldaten können in der UDE in einem xy-Diagramm angezeigt werden (Bild 6 unten rechts). Dabei können verschiedene Graphen gleichzeitig in einem Fenster unterkommen. Für jeden Graphen werden dabei eigene Achsen angezeigt. Die Datenpunkte können innerhalb der UDE aus den Zieldaten errechnet werden. Das geht sowohl zu einzelnen Haltezeiten als auch zur Ausführungszeit des Programms auf dem Ziel. In den Kurvenverlauf kann ein- und ausgezoomt werden, im Pan-Modus kann mit gehaltenem Mauszeiger durch das Diagramm gefahren werden. Auch externe Daten sind zum Vergleich importierbar. Die meisten direkt wählbaren Darstellungen zeigen Tracedaten. Dazu muss aber prinzipiell eine Daten-Trace auf dem Controller verfügbar sein. Es besteht aber auch die Möglichkeit direkt den zeitlichen Verlauf von Variablen oder Ausdrücken zu verfolgen.
Laufzeitmessung – Gemessen wird die Ausführungszeit von einem Startpunkt bis zum nächsten Haltepunkt. Die Anzeige erfolgt direkt in der Symbolleiste (Bild 4 Textfeld über der Codeanzeige).
Mit Trace wird die (gefilterte) Chronologie des Befehlszeigers bezeichnet. Die Traceschnittstelle des Ziels muss von der verwendeten UAD unterstützt werden. Dazu werden eine entsprechende Softwarelizenz und die richtige Firmware für den jeweiligen Adapter notwendig. Danach muss die Traceverbindung unter den Verbindungsoptionen konfiguriert werden.
In der Kontexthilfe sind einige Beispiele gegeben. Im Allgemeinen wird man die Dokumentation seines Mikrocontrollers zu Rate ziehen.
Nach erfolgreicher Konfiguration und gestarteter Aufzeichnung werden unter dem Traceviewer (Bild 6 rechts oben) die Chronologie des Befehlszeigers, die zugehörigen Adressen, Befehle und weitere Daten gelistet. Zur Traceauswertung stehen unterschiedliche Darstellungen im View-Dialog bereit.
Profiling (stats) – Das Säulendiagramm gibt Auskunft über die prozentuale Verteilung der Befehlszeigeraufrufe durch die Funktionen. Ein Unterdialog zeigt dabei Verteilung von Speicherressourcen, Rechen- und Ausführungszeit auf die Funktionen. Diese Auswertung nutzt nicht das Tracesystem.
Profiling (trace) – Das Säulendiagramm misst hier die direkte Ausführungszeit der einzelnen Funktionen. Im Allgemeinen sind diese Daten zur Analyse der Arbeitslast durch die Unterprogramme verlässlicher als die Stats-Methode.
Code Coverage – Die UDE misst drei Arten der Codeüberdeckung: Die Erfüllungsrate der Assemblerbefehle jeder C-Funktion im gesamten Programm, die Erfüllungsrate der Assemblerbefehle jeder C-Funktion auf einer Verzweigung und die Erfüllungsrate auf Basis der Kontrollflussinformationen aus dem Compiler. Eine C-Funktion mit 100-prozentiger Assembler-Codeüberdeckung, erhält im Code-Fenster eine grüne Seitenmarke, eine C-Funktion mit Teilerfüllung eine gelbe Marke.
Sequenzdiagramme – Der Befehls-Trace kann als Gantt-Diagramm dargestellt werden. Horizontale Balken spiegeln die Aufrufbeziehungen der Funktionen untereinander über die Zeit wider.
Anwender können ihr eigenes GUI aus den UDE-AktiveX-Elementen in einer HTML-Umgebung zusammenstellen und automatisieren.
Die UDE bietet zudem die Möglichkeiten der externen Steuerungüber selbst geschriebene Scripte. Dabei können Debug- und Testaufgaben automatisiert werden. Der Anwender ist hier nicht auf eine vorgegebene Scriptsprache beschränkt. Die UDE stellt vielmehr ein standardisiertes Interface (Microsoft-COM-basiert) bereit, dass auch eine enge Kopplung von Werkzeugen Dritter (zum Beispiel Test-Tools) erlaubt. UDE kann in die
Eclipse-C/C++-IDE eingebunden werden.
Die simulierte I/O schreibt die Kommunikation zum Ziel durch die UAD zur Auswertung in ein UDE-Konsolenfenster.
UDE/UAD ist für Multicore-Debugging und die Traceanalyse in vielen Echtzeit-OS-Anwendungen geeignet.
Auf Vielkernsystemen ändert sich die Arbeitsweise mit der UDE nicht: UDE unterstützt Multicore-Debugging mit synchroner Run-Control und Multicore-Breakpoints in einer einzigen Oberfläche. Die Chronologie der Befehlszeiger wird in einer einzigen Traceliste angeordnet.
Die Zuordnung erfolgt über einfache Farbcodierung. Das Codeprofiling gliedert sich nach wie vor in die Unterfunktionen – jeder Kern wird dabei in einem eigenen Balken angezeigt.