C++ und Programmfehler ausmerzen.

Ubuntu

Lt. Commander
Mitglied seit
10.09.2013
Beiträge
104
Renomée
0
Ich bin Anfänger in Sachen Linux, genauer Ubuntu 12.04.3 (64 Bit) und programmiere C++, Bash Script, gelegentlich für den eigenen Bedarf.
Trial und Error verstehe ich richtig, dann setze ich Kommentarzeichen // in den Quelltext, das finde ich freak'ig.
Nur die richtige Lösung ist das kaum, und so hoffe ich das ich hier Berufsprogrammiere, Informatik Studenten aber auch Hobby programmiere mit langjähriger Erfahrung weiterhelfen können, wie man C++ Quelltext von Fehler bereinigt.
Seit ihr bereit mir zu helfen?
 
Hallo,

ich gehe mal davon aus das du mit "Kommentarzeichen setzen" meinst das du bestimmte Zeilen auskommentierst, um zu sehen ob der Fehler aus dieser Zeile kommt.
Das ist schon eine sehr primitive Art des Debuggings. Eine weitere Möglichkeit ist noch "printf oder std::couts <<" einzufügen um z.B. den Wert bestimmter Variablen zu einem Zeitpunkt zu ermitteln. Wie gesagt das sind wirklich die primitivsten Methoden, die man nutzen kann.
Wenn du das ganze etwas professioneller machen willst, solltest du dich mit einem Debugger auseinander setzen. Unter Linux gibt es z.B. den gdb. Aber auf Kommandozeile debuggen, finde ich jetzt nicht so produktiv, weshalb es besser ist eine GUI für den Debugger zu verwenden. Meiner Erfahrung nach bietet der QtCreator eine herrvorragende GUI für den gdb. Mit einen Debugger kannst du so gennante "Breakpoints" in deinen Quelltext setzten an denen das Programm dann pausiert wird. Du kannst dann zeilenweise durch deine Programm durchsteppen und auch währendessen die Inhalte der Variablen anschauen.
Wenn du mal auf Probleme mit Speicherzugriff bzw. Speicherverwaltung stößt ist valgrind ein sehr nettes Framework. Es enthält das tool "memcheck" mit dem man Memory Leaks, falsche Speicherzugriffe und ähnliches finden kann.
Falls du irgendwann mal größere Programme schreiben möchtest, kannst du dich auch in Test-Frameworks einlesen(z.B. Google Test). Damit kann man eine Reihe von Tests schreiben, die man dann ziemlich einfach automatisch ausführen kann. Ist sehr nützlich, wenn man an einem Programm was ändert und nicht immer per Hand alle möglichen Funktionen des Programms testen möchte. Dadurch kann man ganz gut verhindern, dass neu eingebaute Funktionen an anderen Stellen neue Fehler erzeugen.
Ich hoffe ich konnte dir einen kleinen Überblick geben.

Grüße

Marcel
 
Memory leaks:
valgrind
Debuger:
gdb

Bespiele:

valgrind meinprogram <parameter>

gdb --args meinprogramm <paramter>

suchst sowas ?
 
Tuxist
user-offline.png

Memory leaks:
valgrind
Debuger:
gdb

Bespiele:

valgrind meinprogram <parameter>

gdb --args meinprogramm <paramter>

suchst sowas ?
Also um es etwas genauer zu sagen, zur zeit programmiere ich nur noch sehr selten.
Das war um den 28.10.2013, 15:41 (Themenstart) ein bisschen anders.
Speicherlöcher sind für mich eher uninteressant.
Ubuntu
user-online.png


Ich bin Anfänger in Sachen Linux, genauer Ubuntu 12.04.3 (64 Bit) und programmiere C++, Bash Script, gelegentlich für den eigenen Bedarf.
Ich weiss da nicht weiter?
Vielleicht auf Papier?
Eventuell eine AndroidTablet App ????? << Ein Tablett habe ich nicht.Oder ein Quelltext wo jede erfolgreiche Zeile die abgearbeitet wurde als Output in ein Datei(Mehrere) geschrieben wird >>>
So in etwa,
Die Zeile 1 wurde abgearbeitet, erfolgreich erreicht?!
>> und dann in Datei geschrieben;
also etwas getrennt von Quelltext, aber als nebensächliche fehlersuche, wenn man es braucht
 
Zurück
Oben Unten