Gib mir einen Breakpoint …

Gib mir einen Breakpoint, auf dem ich stehen kann,
und ich werde das Programm aus den Angeln heben!

Ich hatte wochenlang mit der VDR-Programmierung gekämpft und gehadert. Ich wollte das Open-Source-System nicht nur nutzen, ich wollte es erweitern. Das ist ja einer der Vorteile daran, dass einem der Quellcode zur Verfügung gestellt wird. Dazu habe ich den Code mit einem Texteditor geändert, mit make gebaut, das Ergebnis an seinen Einsatzort kopiert und gestartet. Die Test-Ausgaben, die ich jeweils eingebaut habe, wurden in eine Log-Datei geschrieben, und die habe ich per tail -f /var/log/syslog ausgelesen.

Das war richtig scheiße.

Programmierung ohne eine Entwicklungsumgebung („Integrated Development Environment“, kurz „IDE“ genannt) ist in meinen Augen anachronistisch. Um bei VDR durchzusteigen, musste ich es dringend in eine IDE „einspannen“. Ich brauchte einen Breakpoint, also eine Stelle, an der das Programm automatisch anhält und an der ich mir dann den aktuellen Zustand ansehen kann, wie das Programm dorthin gekommen ist („Callstack“), und von dem aus ich schrittweise den weiteren Programmablauf verfolgen kann.

Ich habe in den letzten Jahren immer mal wieder mit der IDE KDevelop gearbeitet. Es ging. Aber nicht so richtig gut. Mit Abstand nicht so gut wie mit der Entwicklungsumgebung, die ich seit langem beruflich verwende: Visual Studio. Ich habe im Laufe der Jahre auch die eine oder andere Fehlermeldung zu KDevelop geschrieben und Hoffnungen auf Updates gesetzt, aber so richtig fluffig lief es nie. Vor allem eben im Vergleich zu meinen beruflichen Erfahrungen unter Windows.

Natürlich habe ich mich nach anderen IDEs umgesehen und die eine oder andere ausprobiert. Nichts hat mir so richtig gefallen. Die wohl verbreitetste IDE unter Linux ist Eclipse. Die wurde zwar mal für Java entwickelt, unterstützt aber inzwischen auch diverse andere Sprachen. Zu Eclipse hatte ich mir schon vor einer Weile ein Buch gekauft, das sich speziell der Entwicklung mit C++ widmet: ‚‚Eclipse für C++-Programmierer“ von Sebastian Bauer. Es hat dann erstmal den Weg genommen, den bei mir peinlicherweise schon so manches Fachbuch gegangen ist: Nach ein paar Kapiteln hab ich es weggelegt. In diesem Fall lag es aber weniger an meinem mangelnden Durchhaltevermögen als vielmehr daran, dass ich unter Debian die C++-Umgebung („CDT“) nicht so installiert bekommen habe, dass sie sich richtig in Eclipse integriert hätte. Google-Ergebnissen zufolge war so ein Problem nicht zum ersten Mal aufgetreten.

Doch jetzt, wo ich VDR bei den Hörnern packen wollte, habe ich das Buch wieder herausgekramt. Unter Debian Wheezy konnte ich Eclipse mit CDT diesmal problemlos installieren. VDR habe ich als Fremd-Projekt mit Makefile eingeladen. Dadurch ist wohl nicht alles so handlich wie bei originären Eclipse-Projekten, aber… ich habe meinen Breakpunkt bekommen!

Nachdem das durchgestanden war, konnte ich eines Abends dann auch ein/zwei Stunden lang schrittweise die Prozesse durchgehen, die beim Starten und beim Löschen von Aufnahmen mit dem VDR ablaufen. Mit diesen Informationen gerüstet ließ sich das recht schnell in meinem Plugin nachbauen. Da war ich wohl zu optimistisch. Selbst mit diesen Informationen ausgestattet war es noch harte Arbeit, mein neues Plugin umzusetzen. Um ehrlich zu sein: Ich habe mehrere Monate gebraucht.

Zu meiner Entschuldigung muss ich sagen, dass es nicht immer leicht ist, sich abends zum Programmieren hinzusetzen, wenn man das schon den ganzen Tag über im Büro getan hat. Und ich hatte mit der vielleicht schwierigsten Sorte von Problemen zu kämpfen, denen man als Programmierer begegnen kann: Mehrere Threads kamen sich ins Gehege, und mal lief es so, wie ich mir das vorgestellt habe, mal aber eben nicht. So dass man selbst, wenn man eine Idee hat, wie man dem Problem Herr werden kann, nachher nicht sicherstellen kann, dass man den Fehler tatsächlich dauerhaft behoben hat. Es könnte ja auch Zufall sein, wenn es gerade gutgeht …

Ich bin inzwischen ziemlich weit gekommen. Im Wohnzimmer laufen die Änderungen schon gut. Und bin optimistisch, dass mein Werk nicht nur uns zugute kommt, sondern bald auch veröffentlichungs­­fähig sind. Ich profitiere schon lange von der Arbeit vieler, vieler Programmierer, ohne, dass ich etwas dafür bezahlen müsste. Da möchte ich auch etwas zurückgeben.

 

2 Gedanken zu „Gib mir einen Breakpoint …“

  1. Mehrere Monate? Das beruhigt mich ein wenig, ich zweifelt schon an der Kompetenz der Leute bei Raumfeld/Teufel, die es ums verrecken nicht hinkriegen, das Winzelapp so zu stricken, wie es angepriesen wird… Evtl. fehlt denen so einer wie du?
    Dir einen guten Rutsch ins neue Jahr, dortselbst dann viel Erfolg, Gesundheit und – wenn du magst – ’ne Hochzeit mit deiner tollsten Frau vonne Welt (meine ist schon vergeben, gottseidank an mich).

    1. Wenn ich das Ganze hauptberuflich hätte machen dürfen – hey, sucht einer einen gut zu bezahlenden VDR-Programmierer? ;) -, wär’s sicherlich etwas schneller gegangen. Du darfst also ruhig weiterzweifeln. Aber Progranmmieren ist schon eine recht aufwendige Angelegenheit.

      Hoffentlich liest die, nein meine tollste Frau vonne Welt das nicht! :)
      Ich hatte schon mal überlegt, ob ich ausdrücklich schreiben sollte, dass natürlich jeder seine eigene tollste Frau vonne Welt haben kann und sollte. Wär ja auch schlimm, wenn sich alle um meine schlagen würden…

      Ich wünsch dir – euch – auch ein gutes Jahr!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.