LLVM unter Windows: clang-cl und lld erzeugen PDB-Debug-Daten

Zachary Turner meldete am 18. August 2017 die Erzeugung von PDB-Debug-Informationen mit clang-cl und dem LLVM-Linker lld unter Windows. Grundlegende Aufgaben wie Breakpoints und die Anzeige von Variablen funktionierten nach Angaben des LLVM-Teams. Die Qualität der Debug-Daten galt aber noch als Alpha.

Kompatibilität mit bestehenden Windows-Werkzeugen

PDB-Dateien enthalten CodeView-Daten und Indizes für Symbole und Typen. Sie ermöglichen die Zusammenarbeit mit vorhandenen Windows-Debuggern und der Infrastruktur für Crash-Dumps. Microsoft hatte Teile seines PDB-Codes bereitgestellt; LLVM nutzte sie, um das Format zu erschließen und eigene Dateien zu erzeugen.

Mit llvm-pdbutil bietet LLVM ein Werkzeug zur Untersuchung von PDB-Dateien. Bereits die damalige Ankündigung nennt die Ausgabe interner Daten, YAML-Konvertierung und Vergleiche zwischen Dateien. Die fortgeschriebene Werkzeugreferenz ist keine eingefrorene Funktionsliste des Entwicklungsstands von 2017.

Compilerwechsel und Fehleranalyse getrennt prüfen

Für native Spieleprojekte ist eine erzeugte PDB nur ein Teil des Tests: Ein Team muss auch prüfen, ob seine verwendeten Debugger und vorhandenen Absturzdaten damit tatsächlich arbeiten. Aus einem einfachen Beispielprogramm folgt keine vollständige Kompatibilität mit einem großen optimierten Projekt. Das ist eine praktische Folgerung aus dem ausdrücklich vorläufigen Qualitätsstand, kein berichteter Fehler eines bestimmten Spiels.

Microsoft hatte im Januar den DirectX Shader Compiler auf Clang- und LLVM-Basis geöffnet. Shader-Kompilierung und PDB-Ausgabe für native Windows-Programme sind unterschiedliche Aufgaben. Die gemeinsame Compiler-Infrastruktur bedeutet nicht, dass die PDB-Ankündigung automatisch einen Shader-Debugger ersetzt.

Archivhinweis: Der Beitrag beschreibt die Ankündigung vom August 2017. Er nennt keinen heutigen Stabilitätsstand. Der damals empfohlene Entwicklungssnapshot ist nicht mit einem späteren stabilen LLVM-Release gleichzusetzen.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein