16.01.2014 Aufrufe

6 Race Conditions

6 Race Conditions

6 Race Conditions

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

10.4 Werkzeuge für die Data-<strong>Race</strong>-Analyse<br />

209<br />

Beurteilung von Falschwarnungen wieder verloren. Falschwarnungen sind besonders<br />

häufig bei intensiver Verwendung von Zeigern zu erwarten.<br />

In der akademischen Forschung wurde statische Analyse erfolgreich mit<br />

dynamischen Ansätzen kombiniert: Im ersten Schritt untersucht ein übervorsichtiger<br />

statischer Algorithmus, in welchen Programmteilen es überhaupt zu Data<br />

<strong>Race</strong>s kommen kann. Im zweiten Schritt werden dann nur für diese Programmteile<br />

dynamische Verfahren angewandt und damit Zeit für die Testerstellung<br />

gespart. Zurzeit der Drucklegung des Buchs ist dem Autor aber kein industrielles<br />

Werkzeug bekannt, das diesen Ansatz verfolgt.<br />

10.4 Werkzeuge für die Data-<strong>Race</strong>-Analyse<br />

Die in Abschnitt 10.2 vorgestellten kommerziellen Werkzeuge zur dynamischen<br />

Analyse von Data <strong>Race</strong>s sind sehr kostengünstig zu lizensieren und meist für den<br />

Privatgebrauch völlig kostenfrei. Die Werkzeuge verfügen über eine mächtige<br />

Benutzerschnittstelle und bieten großen Komfort, wie der Screenshot eines dieser<br />

Tools in Abbildung 10–5 erahnen lässt.<br />

Abb. 10–5<br />

Data <strong>Race</strong> erkannt<br />

10.5 Diskussion<br />

Data <strong>Race</strong> Detection mit am Markt befindlichen Tools funktioniert natürlich nur,<br />

wenn dem Tool die API zu den Synchronisationsmechanismen des Betriebssystems<br />

bekannt sind, damit das Werkzeug parallel ausgeführte Programmpfade und<br />

Synchronisationsmechanismen erkennen kann. Typischerweise unterstützen

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!