Die Analyse von Systemereignissen spielt eine wichtige Rolle bei der Echtzeit-Verarbeitung und Performance-Optimierung

Neuer Debugger für die Systemanalyse

4. April 2008, 8:52 Uhr | John A. Carbone
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 4

Neuer Debugger für die Systemanalyse

Einige Anbieter von Echtzeit-Betriebssystemen haben Werkzeuge entwickelt, die Hilfestellung bei der Erfassung und Auswertung der Systemereignisse leisten. In der Regel liefern diese Tools eine grafische Darstellung des aufgezeichneten Event-Logs und helfen dem Entwickler, Einblicke in das Verhalten ihres Systems zu gewinnen.

Viele solcher „System Event Analyzer“ sind außerdem unflexibel, was das Management des Trace Buffers zum Ablegen der Systemereignisse betrifft. Sie schreiben in der Regel in einen bestimmten Trace Buffer, der von der Applikation nicht aus- und wieder eingeschaltet werden kann. Deshalb besteht das Risiko, dass der Pufferspeicher mit nutzlosen Informationen gefüllt wird und die wirklich interessierenden Daten wegen Erreichens der Kapazitätsgrenze verloren gehen. Der Großteil dieser Programme visualisiert die Trace-Ereignisse in grafischer Form mit mehreren Linien, die die verschiedenen Threads sowie Systemroutinen wie etwa Interrupthandler, Initialisierungscode usw. symbolisieren. Da der Entwickler Informationen über ein bestimmtes Ereignis in der Regel erhält, indem er das betreffende Event anklickt und dem sich öffnenden Fenster die wichtigsten Angaben entnimmt, kann naturgemäß nur je ein Ereignis gesichtet werden.

passend zum Thema

Neues Konzept: Kooperation mit dem Betriebssystem

Der neue System Event Viewer TraceX von Express Logic (Bild 1) gibt Entwicklern eine neue Möglichkeit, System- und Applikations-Ereignisse zu sichten, wobei die Schwächen vergleichbarer Produkte vermieden werden. TraceX ist für den Einsatz mit dem Echtzeit-Betriebssystem ThreadX von Express Logic vorgesehen und legt zur Laufzeit einen Datenbestand über die im Zielsystem registrierten Systemund Applikations-Ereignisse an. Bei diesen Ereignissen handelt es sich um Thread-Kontextwechsel, Preemptions, Suspensions, Terminations und System-Interrupts.

Mit Hilfe eines zu TraceX gehörenden Application Programming Interface (API) kann der Anwender die Aufzeichnung eines jeden gewünschten Applikations-Ereignisses veranlassen. Die Events werden programmgesteuert in der Datenbank abgelegt und mit einem Zeitstempel und einer Angabe des aktiven Thread versehen, damit sie später in der richtigen zeitlichen Reihenfolge visualisiert werden können.

e801jk11_1_af_05.jpg
Bild 1. TraceX liefert eine grafische Darstellung von Echtzeit-Systemereignissen. Das Beispiel zeigt die Initialisierungsphase und den Anfang der Verarbeitung des standardmäßigen TraceX-Demonstrationsprogramms.

Um die Ereignisse einer sequenziellen Beobachtung zugänglich zu machen, werden die Trace-Informationen in einem zyklischen Puffer im Zielsystem abgelegt, wobei die Größe des Pufferspeichers von der Applikation festgelegt wird. Mit einem zyklischen Puffer wird erreicht, dass zu jedem Zeitpunkt stets die n letzten Ereignisse vorhanden sind und inspiziert werden können, sollte es zu einer Fehlfunktion oder einem anderen relevanten Ereignis kommen (Bild 2).


  1. Neuer Debugger für die Systemanalyse
  2. Neuer Debugger für die Systemanalyse
  3. Verbesserung der Applikations-Performance
  4. Behebung von Prioritätsinversions-Problemen
  5. Neuer Debugger für die Systemanalyse

Jetzt kostenfreie Newsletter bestellen!