Valgrind
aus openSUSE, der freien Wissensdatenbank
Valgrind
Versionen in Distributionen von openSUSE; aktuelle Versionen für ihre Distribution finden Sie (evtl.) im Build Service.
| 10.1: | 10.2: |
| 3.1.1 | 3.2.1 |
| 10.3 | 11.0 |
| 3.2.3 | 3.3.0 |
| 11.1 | Factory |
| 3.3.1 | 3.5.0 |
Valgrind ist eine Werkzeugsammlung zum Debuggen, Profilen und zur dynamischen Fehleranalyse von GNU/Linux-Programmen auf Basis der x86, AMD64, PPC32 und PPC64-Architekturen.
Die Sammlung Valgrind besteht aus diversen Werkzeugen, die beim Aufruf des Programms ausgewählt werden können. Sie unterscheiden sich in erster Linie in ihrer Zielrichtung und ihrem Umfang.
Es können mit diesen Werkzeugen diverse sonst recht schwer zu lokalisierende Fehler gefunden werden, wie z. B. Feldgrenzenüberläufe oder Verwendung von uninitialisierten Variablen. Darüber hinaus lassen sich Geschwindigkeitsprobleme sehr gut analysieren und eingrenzen.
Valgrind ist ein kommandozeilen-orientiertes Programm, für das es diverse grafische Frontends gibt (Alleyoop, Gnogrind, KDevelop, Valgui, Valkyrie).
Werkzeuge
- Memcheck
- Addrcheck (entfernt in 3.2.0)
- Cachegrind
- Massif
- Helgrind
- Lackey, Nulgrind
- Callgrind
- extern Cachegrind
memcheck
Das wichtigste Werkzeug für das Debuggen von Programmen ist memcheck, welches folgende Fehler finden kann:
- Benutzung von nicht initialisiertem Speicher
- Lese- und Schreibzugriffe auf freigegebenen Speicher
- Schreiben über die Speichergrenzen hinaus
- Speicherlecks
callgrind
Für Messungen eines Programms ist callgrind interessant, welches umfangreiche Statistiken über das eingesetzte Programm ermittelt. Die Zahlen sind auf verschiedenen Systemen direkt miteinander vergleichbar, weil diese nicht die benötigte Ausführungszeit messen, sondern die Anzahl der CPU-Takte. Es gibt auch an, ob Algorithmen besonders schnell im Cache der CPU laufen können und wie oft es zu einem Hit oder Miss kommt. Die Größe der Caches kann man variieren, somit lassen sich verschiedene CPUs simulieren.
helgrind
Das Werkzeug helgrind (bis zur Version 2.2 und ab der Version 3.3.0) hilft bei der Suche nach kritischen Abschnitten und erleichtert das Debuggen mit Threads.
Paketdepots/Aktuellere Versionen im Build Service
Die von openSUSE ausgelieferte Version von Valgrind erfährt über die Online-Aktualisierung von YaST lediglich Erneuerungen bei Sicherheitsproblemen oder schwerwiegenden Fehlern. Wenn Sie einen größeren Versionssprung vornehmen wollen oder diese Software nicht auf den Installationsmedien mitgeliefert wird, stehen für die von Ihnen verwendete Ausgabe der Distribution neue Pakete im devel:tools-Depot des Build Service von openSUSE zur Verfügung. Weitere Informationen erhalten Sie im Artikel Zusätzliche Paketquellen.
Siehe auch

