Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2007  »  07  »  Zum Angriff auf die Bugs  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

© 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«.

Abhängigkeiten

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.

Sie können diesen Artikel als PDF für 99 Cent kaufen. Klicken Sie dazu einfach auf eine der beiden Bezahloptionen Paypal oder ClickandBuy.


Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Getriebeschaden Mit dem Gnu-Debugger auf Inspektion in Perls Mechanik
Zur Sonne, zur Freiheit Neuerungen in Eclipse Helios
Künstlicher Horizont 3D-Engine Ogre
Sonnenstudio Suns Entwicklungsumgebung Studio unter Linux
Verwandlungskünstler C- und C++-Entwicklung mit Eclipse
Im Rampenlicht Ob Bühnenbild oder 3D-Modell, erst Anstrich und Licht sorgen für die perfekte Illusion
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)
Kommentare (0)