Eine Stärke der Programmiersprache C ist die Möglichkeit, dass Entwickler Programmcode auf niedriger Ebene optimieren können. Da die Programmiersprache C direkten Zugriff auf Anwendungsspeicher und hardwarespezifische Funktionsaufrufe bietet, sind Entwickler oft besser in der Lage, Programmgröße und Ausführungsgeschwindigkeit zu steuern.
Aber mit der Leistungsfähigkeit und Flexibilität von C ist auch die zusätzliche Komplexität der Speicherverwaltung verbunden, wie die vielen wissenschaftlichen Bücher zu diesem Thema zeigen. In einem Buch wurde Folgendes erwähnt:
Die überwältigende Mehrheit der „Bugs“ und Abstürze resultiert aus Problemen hinsichtlich des Speicherzugriffs, der Speicherzuweisung oder der Speicherfreigabe. Solche speicherbezogenen Fehler sind bekanntermaßen schwer zu beheben ... Die meisten professionellen Programmierer kennen die Probleme, die sie verursachen, aus eigener Erfahrung.
Damit Entwickler Speicherlecks nicht erst nach der Bereitstellung ihrer Anwendungen erkennen, gibt es in LabWindows/CVI 9.0 jetzt ein Tool, das Fenster „Resource Tracking“, mit dem Entwickler Speicherlecks schon früher im Entwicklungsprozess erkennen und beheben können.
LabWindows/CVI bietet seit über einem Jahrzehnt eine automatische Überprüfung der Array-Grenzen, um Speicherfehler zu erkennen, die zu unerwartetem Verhalten führen können. LabWindows/CVI umfasst nun ein integriertes Tool zum Auffinden potenzieller Ressourcenlecks, die die Systemleistung im Laufe der Zeit beeinträchtigen können. Damit baut die Software auf der Tradition der Bereitstellung fortschrittlicher Benutzerschutzfunktionen auf, die in C normalerweise nicht verfügbar sind.
Das neue Fenster „Resource Tracking“ (verfügbar in LabWindows/CVI Full Development System und Developer Suite) erfasst und verfolgt alle während der Ausführung zugewiesenen Ressourcen, zu denen beispielsweise dynamischer Speicher, Datei-Handles, Panels, GPIB/TCP-Handles und Thread-Pools gehören. Das Tool ermöglicht außerdem das einfache Wechseln zum Quellcode, das Anzeigen von Speicher, die Speicherfreigabe und die Protokollierung verfolgter Ressourcen zur späteren Überprüfung.
Wählen Sie Extended im Abschnitt Debugging Options des Dialogfelds Build Options aus, um die interaktive Ressourcenverfolgung zu aktivieren. Programmatisch können Sie die Ressourcenverfolgung auch mit den Funktionen „GetEnableResourceTracking“ und SetEnableResourceTracking in der Utility Library aktivieren und deaktivieren.
In der Spalte Resources im Fenster „Resource Tracking“ werden sowohl zugewiesene als auch freigegebene Ressourcen angezeigt, die Sie in Ihrem Programm zuweisen. In LabWindows/CVI werden neu zugewiesene Ressourcen mit rotem Text, vorhandene zugewiesene Ressourcen mit schwarzem Text und vor Kurzem freigegebene Ressourcen mit grauem Text angezeigt. Die Ressourcen sind auch abhängig vom Typ in Kategorien gruppiert, z. B. Speicher, Toolbox, Ressourcen der Benutzeroberfläche usw. Doppelklicken Sie auf eine Ressource in der Spalte Resources, um direkt zu der Stelle im Quellcode zu wechseln, an der die Ressource zugewiesen wurde. Im Abschnitt Stack Trace des Fensters „Resource Tracking“ wird der Aufrufstapel der Funktionen angezeigt, als die Ressource zugewiesen wurde. Dabei befindet sich die zuletzt aufgerufene Funktion oben und die Anfangsfunktion unten in der Liste.
Die Ressourcenverfolgung ist sowohl auf erweiterter als auch auf Standardebene für die Fehlersuche verfügbar. Mit der Option Extended im Abschnitt Debugging Options des Dialogfelds „Build Options“ wird per Standardeinstellung die Ressourcenverfolgung aktiviert. Wenn Sie Standard auswählen, müssen Sie die Funktion „SetEnableResourceTracking“ verwenden, um die Ressourcenverfolgung zu aktivieren.
Zur Anzeige des Fensters „Resource Tracking“ wählen Sie im aktiven LabWindows/CVI-Fenster die Optionen Window»Resource Tracking aus. Bei einem Rechtsklick auf die Spalte Resources im Fenster „Resource Tracking“ öffnet sich das Kontextmenü mit folgenden Optionen:
Durch einen Rechtsklick auf den Abschnitt Stack Trace im Fenster „Resource Tracking“ wird das Kontextmenü mit folgenden Optionen geöffnet:
Bei einem Rechtsklick auf die Registerkarte des Fensters „Resource Tracking“ öffnet sich das Kontextmenü mit folgenden Optionen:
Da die Verfolgung von Ressourcen zusätzlichen Overhead verursacht, beeinträchtigt die Aktivierung der Ressourcenverfolgung die Leistung Ihres Programms.
Für die Verwendung der Marke LabWindows wurde eine Lizenz bei der Microsoft Corporation eingeholt. Windows ist ein in den USA und anderen Ländern eingetragenes Warenzeichen der Microsoft Corporation.