Kithara Kernel Tracer
Multi-Source-Echtzeit-Message-Tracer und -Logger
Mit Kithara Kernel Tracer können Sie die internen Abläufe in Echtzeitanwendungen detailliert untersuchen. Während der Programmentwicklung werden leistungsfähige Werkzeuge, etwa zur Fehlersuche benötigt. Hierzu findet bisher meist ein Debugger Verwendung. Bei Multithread-Programmierung ist dieser jedoch oftmals nur eingeschränkt nutzbar, da er den Ablauf beeinflusst. Bei nebenläufigen Prozessen, mehreren Threads und vor allem bei Computern mit mehreren gleichzeitig arbeitenden CPUs (Multiprozessor- und Mehrkern-Systeme, Hyperthreading) hängt das Ergebnis des Programmablaufs oftmals davon ab, ob die einzelnen Programmteile zeitlich parallel ausgeführt werden. Bei Verwendung eines Debugger ist dies nicht mehr sichergestellt:
- Der Programmablauf gerät bei Verwendung eines Debuggers durcheinander.
- Ein Programm verhält sich nicht wie erwartet, bei Einsatz des Debuggers funktioniert jedoch alles.
- Der Debugger ist nicht in der Lage, im Echtzeitkontext zu arbeiten.
Die Lösung ist ein Tracer-Werkzeug, mit dem der tatsächliche Ablauf der parallelen Programmteile protokolliert und anschließend ausgewertet werden kann.
Kurzbeschreibung
Kithara Kernel Tracer ist ein Multi-Source-Echtzeit-Message-Logger. Er dient der Fehlersuche, der Qualitätskontrolle und allgemein zum Aufspüren von Zusammenhängen, die ansonsten kaum zu ermitteln sind. Kithara Kernel Tracer sammelt garantiert alle Trace-Messages, die systemweit von verschiedenen Quellen stammen können, in der Reihenfolge ihres Auftretens ein, wobei diese normalerweise auf unterschiedlichen Seiten (Tabs) erscheinenden Messages auf einer Seite zusammengeführt werden können (merged).
Kithara Kernel Tracer ist in der Lage, mehrere hunderttausend Messages pro Sekunde zu verarbeiten. Um in dieser gewaltigen Datenmenge die entscheidenden Informationen zu finden, stellt das Werkzeug verschiedene Mechanismen bereit, um Messages zu filtern oder zu suchen. Es erlaubt eindrucksvolle Einsichten in die tatsächlichen Abläufe im Inneren eines PCs, zum Beispiel auf der Kernel-Ebene. Neben der Darstellung sämtlicher Aufrufe von Kithara-Funktionen mit all ihren aktuellen Funktionsargumenten können Sie auch selbst Messages erzeugen, die dann von Kithara Kernel Tracer mit vielen hilfreichen Zusatzinformationen dargestellt werden.
Eigenschaften von Kithara Kernel Tracer im Detail
- Multi-Source: Unterstützung beliebig vieler Threads und Programme aus Anwendungs- und Kernel-Ebene (Echtzeit)
- Multi-Core: Zeitlich korrekte Zuordnung der Messages bei mehreren CPUs (SMP, Hyper Thread, Dual-Core etc.)
- hohe Verarbeitungsgeschwindigkeit (mehrere hunderttausend Messages/s möglich, sofern Leistungsreserve vorhanden)
- alle Funktionsaufrufe von Kithara RealTime Suite werden mit Funktionsargumenten dargestellt
- Anwenderspezifische Messages können mit den Tools von Kithara RealTime Suite generiert werden (printf-ähnlich mit C und C++)
- Messages werden mit vielen Details dargestellt, inklusive der Systemzeit in 0,1-Mikrosekunden-Auflösung
- Messages lassen sich filtern, zusammenführen, speichern und wieder laden
- Filterung erlaubt: dauerhaftes Löschen, vorübergehendes Ausblenden, Fett-, Kursiv- und farbige Darstellung von Messages
- Farbige Darstellung erlaubt Hervorhebung von Fehlermeldungen und Warnungen
- Filterung der Messages nur von einer Quelle oder global
- Weitere Kontextdetails: logische CPU, Thread-/Prozess-ID, Echtzeit-Task-ID, laufende(r) Message-Nummer und -typ, Thread- oder Task-Priorität, Inhalt von Datenblöcken (bei ausgewählten Messages)
- Suchfunktion für Messages nach Text, Zeitpunkt und allen anderen Feldern
- Message-Masken verhindern unnötige Generierung nicht benötigter Messages
- Messages werden auch über BSOD hinweg gespeichert (Crash-Dump wird automatisch gescannt)
- Unterschiedliche Einfärbung verschiedener Prozesse, Threads und Tasks zum besseren Auffinden
- Messages lassen sich nachträglich ändern (Text, Vorder-/Hintergrundfarbe) zur Dokumentation
- Programmierte Filter zu- und abschaltbar
- Verschiedene Datenspalten ein- und ausblendbar
- USB-, UART-, CAN- und Netzwerk-Geräte lassen sich speziell beobachten
- Memory-Viewer zum Ansehen von physischem Speicherinhalt
- PCI-Viewer zum Analysieren von PCI-Geräten
- Mitgeliefertes SDK ermöglicht Programmierung eigener Trace-Quellen
Anwenderspezifische Meldungen
Sie können eigene Meldungen an den Tracer übergeben, beispielsweise um Variableninhalte darzustellen oder das Eintreten besonderer Programmzustände zu signalisieren. In den Tools von Kithara RealTime Suite stehen dafür die Funktionen KS_logMessage und KS_vprintK zur Verfügung. KS_logMessage kann von allen unterstützten Sprachen genutzt werden, KS_vprintK verwendet eine variable Argumentliste und ist daher von C und C++ aus verwendbar.