© rokit_de, photocase.com
OpenGL-Anwendungen debuggen mit Bugle
Zum Angriff auf die Bugs
von Tim Schürmann
Erschienen im Linux-Magazin
2007/07
Das Entwanzen von OpenGL-Anwendungen bereitet Kopfschmerzen. Der Allzweckreiniger GDB liefert meist zu wenig hilfreiche Informationen, ganz zu schweigen von dem fehlenden Einblick in Shader und Texturen. Zeit also für einen Debugger, der OpenGL bei den Hörnern packt.
Seit nunmehr über zwei Jahren bastelt Bruce Merry an einem kostenlosen und vollständig auf OpenGL-Anwendungen spezialisierten Debugger. Das Bugle (englisch für Jagdhorn) getaufte Werkzeug setzt sich als Wrapper-Bibliothek zwischen das zu untersuchende Programm und die OpenGL-Bibliothek, um die anfallenden Funktionsaufrufe zu überwachen. Auf Grund dieses Tricks arbeitet es sogar mit bereits fertigen Anwendungen ohne eingearbeitete Debug-Informationen.
Je nach Bedarf protokolliert Bugle die gesammelten Informationen, erzeugt Statistiken (beispielsweise über die Framerate), aktiviert nach jedem Funktionsaufruf »glGetError()«, um den Fehlerkanal auszulesen, erzwingt einen Wireframe-Modus, schießt Screenshots oder zeichnet Videos auf. Als Bonus gibt es zusätzlich noch ein GDB-ähnliches Hilfsprogramm, und zwar einschließlich einer grafischen Oberfläche, die auch Shader und Texturen inspiziert.
Allerdings sollten Anwender nicht zu früh jubeln: Trotz der langen Entwicklungszeit befindet sich Bugle noch immer in einem frühen Alphastadium. Auch wenn vieles schon stabil läuft, tauchen immer wieder vereinzelt Probleme auf. Das gilt insbesondere bei neuen Grafikkarten oder herstellerspezifischen OpenGL-Erweiterungen.
Funktionsweise
Bugle gibt es derzeit nur als Quellcode-Paket über die offizielle OpenGL-Seite unter [1]. Die Voraussetzungen für die Übersetzung nennt der Kasten "Abhängigkeiten". Die anschließende Übersetzung und Installation erfolgt mit dem bekannten Dreisatz »./configure; make; make install« und einem sicherheitshalber nachgeschobenen »ldconfig«.
|
Bugle selbst ist recht genügsam. Für die Übersetzung des Quellcode und den Betrieb setzt es lediglich folgende Pakete voraus:
- Perl 5
-
GCC 3.2 oder höher (nicht 4.0), wobei es sowohl den C- als
auch den C++-Compiler benötigt
- Ffmpeg, sofern Video-Aufzeichnungen gewünscht sind
- GNU Readline (zum Editieren der History in Gldb)
- GTK+ für »gldb-gui«
-
Gtkglext für »gldb-gui«; fehlt dieses Paket,
funktioniert die Anzeige der Texturen nicht
|
Bugle hängt sich zwischen die Anwendung und die OpenGL-Bibliothek »libGL«. Damit dies auch bei jeder fertigen Anwendung klappt, verbündet sich Bugle mit dem dynamischen Linker. Dieser erlaubt es über die Umgebungsvariable »LD_PRELOAD«, weitere, dynamische Bibliotheken in das Programm zu laden. Bei diesem als Library Interposition bezeichneten Verfahren biegt der Linker alle passenden Funktionsaufrufe auf die eingeschmuggelte Bibliothek um.
Wie am Fließband
Sobald Bugle auf diese Weise aktiviert ist, fängt es jeden OpenGL-Funktionsaufruf ab. Er durchläuft dann eine oder mehrere von Bugles Bearbeitungsstationen, bevor er schließlich wieder an OpenGL durchgereicht wird.
Bildlich kann man sich diesen Vorgang wie ein Fließband vorstellen, auf dem der Funktionsaufruf an mehreren Arbeitern vorbeiläuft. Jeder dieser Arbeiter erledigt eine bestimmte Aufgabe, beispielsweise "Schieße Screenshot" oder "Notiere den Aufruf in einem Log". Anschließend reicht er den Funktionsaufruf an seinen Nachfolger weiter. Einen solchen Arbeiter bezeichnet Bugle als Filter-Set (kurz Filter), das zusammen am Fließband eine Chain (Kette) bildet.
| Whitepaper |
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)
Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
|
Usage Landscape Enterprise Open Source Data Integration
Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|