Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Valgrind – Wikipedia
Valgrind – Wikipedia 👆 Click Here!
aus Wikipedia, der freien Enzyklopädie
Valgrind
Basisdaten

Entwickler Valgrind-Entwickler[1]
Aktuelle Version 3.26.0[2]
(25. Oktober 2025)
Betriebssystem Linux, Android, FreeBSD, macOS, Solaris
Programmier­sprache C[3]
Kategorie Debugger, Profiler
Lizenz GPL (Freie Software)
deutschsprachig nein
www.valgrind.org

Valgrind (ˈvælɡrɪnd) ist eine Programmierwerkzeugsammlung zum Debuggen, Profilen und zur dynamischen Fehleranalyse von Computerprogrammen. Es werden grundsätzlich die Architekturen x86, AMD64, s390x, ARM, PPC32 und PPC64 unter den Betriebssystemen Linux, Android und macOS unterstützt. Experimentelle Ports für FreeBSD, NetBSD und OpenBSD existieren ebenfalls.

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

Namensherkunft

[Bearbeiten | Quelltext bearbeiten]

Der Name Valgrind stammt aus der nordischen Mythologie und ist dort der Haupteingang nach Valhall sowie ein Zaun um Helheim.

Systemaufbau

[Bearbeiten | Quelltext bearbeiten]

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, z. B. Feldgrenzenüberläufe oder die Verwendung nicht initialisierter Variablen. Darüber hinaus lassen sich Performanceprobleme sehr gut analysieren und eingrenzen.

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

Systemrealisierung

[Bearbeiten | Quelltext bearbeiten]

Valgrind ist im Kern eine virtuelle Maschine mit Just-in-time-Kompilierung (JIT). Nichts von dem zu debuggenden Programm läuft direkt auf der Host-CPU, stattdessen übersetzt Valgrind das Programm in einen temporären, einfacheren und plattformunabhängigen Bytecode, den sogenannten Vex IR (ab Version 3.x, vormals 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

[Bearbeiten | Quelltext bearbeiten]

Liste

[Bearbeiten | Quelltext bearbeiten]
  • Memcheck
  • Addrcheck (entfernt in 3.2.0)
  • Cachegrind
  • DRD
  • Massif
  • Helgrind
  • Lackey, Nulgrind
  • DHAT
  • Callgrind
  • SGcheck
  • BBV

memcheck

[Bearbeiten | Quelltext bearbeiten]

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

callgrind

[Bearbeiten | Quelltext bearbeiten]

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

[Bearbeiten | Quelltext bearbeiten]

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

[Bearbeiten | Quelltext bearbeiten]
  • Softwarefehler
  • Laufzeitfehler

Weblinks

[Bearbeiten | Quelltext bearbeiten]
  • Offizielle Website
  • KCachegrind

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ The Valgrind Developers
  2. ↑ Mark J. Wielaard: Valgrind-3.26.0 is available. 25. Oktober 2025 (abgerufen am 27. Oktober 2025).
  3. ↑ The valgrind Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Oktober 2018).
  4. ↑ Google-O'Reilly Open Source Awards - Hall of Fame, abgerufen am 18. November 2018.
Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Valgrind&oldid=256178614“
Kategorien:
  • Freies Programmierwerkzeug
  • Testsoftware

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id