Valgrind

Valgrind
valgrind
Entwickler Valgrind Entwickler [1]
Aktuelle Version 3.6.1
(16. Februar 2011)
Betriebssystem Linux
Kategorie Software-Fehlerbereinigung
Lizenz GPL (Freie Software)
Deutschsprachig nein
www.valgrind.org

Valgrind ist eine Werkzeugsammlung zum Debuggen, Profilen und zur dynamischen Fehleranalyse von Programmen. Es werden grundsätzlich die Architekturen x86, AMD64, PPC32 und PPC64 unter den Betriebssystemen Linux und Mac OS X unterstützt. Experimentelle Ports für FreeBSD und NetBSD existieren ebenfalls.

Ursprünglich entwickelt wurde Valgrind von dem Compilerbau-Spezialisten Julian Seward, der für diese Arbeit den Google-O'Reilly Open Source Award erhielt.

Inhaltsverzeichnis

Namensherkunft

Der Name Valgrind stammt aus der nordischen Mythologie und ist dort der Haupteingang nach Valhall.

Systemaufbau

Die Werkzeugsammlung Valgrind besteht aus diversen Tools, 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 Performanceprobleme sehr gut analysieren und eingrenzen.

Valgrind ist ein kommandozeilen-orientiertes Programm, für das es diverse graphische Frontends gibt (Alleyoop, Gnogrind, KDevelop, Valgui, Valkyrie).

Systemrealisierung

Valgrind ist im Kern eine virtuelle Maschine, welche Just-in-Time-Compilierung (JIT) benutzt. Nichts von dem zu debuggenden Programm läuft jemals direkt auf der Gast-CPU, stattdessen übersetzt Valgrind das Programm in einen temporären, einfacheren und plattform-unabhängigen Byte-Code, den sogenannten Vex IR (seit Version 3.x, formals UCode). Nach der Konvertierung können verschiedene Valgrind-Tools diverse Transformationen vornehmen (z. B. Überwachen des Speichers oder Erstellen eines Ablauf-Profils), bevor Valgrind den neuen Code nimmt, in Maschinencode übersetzt und schließlich laufen lässt.

Zwar lässt die Konvertierung in den Vex IR und zurück ein Programm um ein Vielfaches langsamer laufen, dazu addieren sich dann noch die Zeiten der verschiedenen Werkzeuge, jedoch ist der Vex IR wesentlich geeigneter für das Debuggen und das Erstellen der Werkzeuge, und die langsame Ausführungszeit ist für die meisten Programme kein Problem. Hinzu kommt der Vorteil, dass das zu prüfende Programm nicht aufbereitet werden, ja nicht einmal im Quellcode vorliegen muss.

Werkzeuge

  • Memcheck
  • Addrcheck (entfernt in 3.2.0)
  • Cachegrind
  • Massif
  • Helgrind
  • Lackey, Nulgrind
  • Callgrind
  • extern Cachegrind

Werkzeug: memcheck

Das wichtigste Tool 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

Werkzeug: 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.

Werkzeug: 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.

Siehe auch

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Valgrind — Тип Профилировщик, отладчик использования памяти Разработчик Разработчики Valgrind Операционная система Linux, Mac OS X Последняя версия 3.8.0 (10 августа 2012) …   Википедия

  • Valgrind — Desarrollador Desarrolladores de Valgrind [1] Información general Última versión estable …   Wikipedia Español

  • Valgrind — Développeur Julian Seward Dernière version 3.6.1 ( …   Wikipédia en Français

  • Valgrind — (nord. Myth.), Gitter an dem westlichen Thore in Walhalla, s.d …   Pierer's Universal-Lexikon

  • Valgrind — infobox software developer = [http://valgrind.org/info/developers.html The Valgrind Developers] latest release version = 3.3.1 latest release date = 4 June 2008 operating system = Unix like genre = Profiler, Memory debugger license = GNU General… …   Wikipedia

  • Valgrind (disambiguation) — Valgrind may refer to: *Valgrind, a programming tool *Valgrind, the main entrance to Valhalla in Norse mythology *Valgrind (band), an Italian heavy metal band …   Wikipedia

  • Julian Seward — Nationalité  Royaume Uni Profession Programmeur Compléments …   Wikipédia en Français

  • Сюард — Сюард, Джулиан Джулиан Сюард (англ. Julian Seward)  разработчик компилятора и один из соавторов свободного ПО, проживающий в Кембридже, Великобритания. Широко известен благодаря созданию утилиты сжатия bzip2, а также набору valgrind для… …   Википедия

  • Сюард, Джулиан — В Википедии есть статьи о других людях с такой фамилией, см. Сюард. Джулиан Сюард (англ. Julian Seward)  разработчик компилятора GHC и один из соавторов свободного ПО, проживающий в Кембридже, Великобритания. Широко известен благодаря… …   Википедия

  • Julian Seward — is a compiler writer and Free Software contributor. He is commonly known for creating the bzip2 compression tool, as well as the valgrind memory debugging toolset. In 2006 won a second Google O Reilly Open Source Award for his work on Valgrind.… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”