Frage zum Debuggen unter Linux
-
hallo,
also ich hoffe mal das ist das richtige forum hier...
ansonsten bitte aufmerksam machen
also, ich bin grad dabei ein einfaches Programm unter Ubuntu mit C++ und der IDE Netbeans zu programmieren... soweit, so gut. Das Programm läuft auch, es tut halt nur nicht das was es soll, es weigert sich wehement.
Deshalb möchte ich jetzt mal einen Debugger einsetzen
Ich würde einen benötigen, bzw. gibts so einen unter linux überhaupt, der mir das programm schritt für schritt durchgeht und ich so meine fehler finden kann. Sollte es ja geben, den IMHO ist das ja der sinn eines Debuggers. Ich habs auch schon mit dem DDD versucht, aber der zeigt mir auch nicht mehr an, ausser das mein programm ordnungsgemäß beendet wird.
das wusste ich vorher auch schon.
hat da jemand rat für mich in dieser dunklen stunde?
danke & lg
-
http://www.ibm.com/developerworks/library/l-gdb/
http://www.google.de/search?q=linux+debugger&ie=utf-8&oe=utf-8&aq=t&rls=org.mozillaofficial&client=firefox-a#sclient=psy&hl=de&client=firefox-a&hs=zCm&rls=org.mozilla:de%3Aofficial&source=hp&q=debugger+für+linux+c%2B%2B&aq=f&aqi=&aql=&oq=&pbx=1&fp=be57060f8ea9d934
-
Damit Du durch Dein Programm durchsteppen kannst, musst Du erst irgendwo Breakpoints setzen.
Ein paar Leute hier benuzen nemiver, das duerfte deutlich moderner als DDD sein. Vielleicht interessiert Dich das ja.
-
Hast du beim compilieren das Debugflag gesetzt? Sonst tut sich der Debugger sehr schwer (egal welcher)...
Ich finde den DDD sehr gut.
-
Was sicher ist: verwende GDB, unter Linux gibt's nichts besseres. Die Frage ist nur, welches Interface. Und das ist meistens eine Sache der IDE. Wenn Netbeans keinen integrierten Debugger hat, schmeiss es weg (sieht mir eh mehr nach Java aus). Emacs zu Beispiel hat eine fabelhafte GDB-Integration.
Zum Kompllieren: nimm am besten
-g -ggdb3
zu deinen-Wall -Wextra -pedantic
, die du ja sowieso schon hast.
-
Netbeans ist nativ für Java und auch in Java geschrieben, aber nicht übel.
Eclipse ist aber zum Debuggen denke ich besser.
Oder man nimmt halt einfach nen Tool dafür her. GDB Frontends gibts ja en masse.
-
hallo,
danke für eure antworten... ich bin jetzt nach einigem Probieren wieder beim DDD angelangt... kann mir jemand sagen, wie mir dieser ver**** DDD meine Source code anzeigt damit ich hier mal meine breakpoints setzen kann?
danke & lg
-
Ich glaube, du setzt das Debugflag nicht.
Dein Compileraufruf für jede Sourcedatei muss so aussehen:
gcc -c -g -Wall -o test.o test.c
Das -g ist das Debugflag. Sprich der Compiler fügt zum Binary gewisse Debuginformationen hinzu. Unter anderem auch die Sourcefiles.
Und anschließend noch linken.
Wie du das im Eclipse machst, kann ich dir leider nicht sagen, aber da sollte dir Google helfen.
MfG bauerb
-
Du kannst doch direkt in Netbeans debuggen: http://netbeans.org/kb/docs/cnd/debugging.html
-
Nachdem ich's schon in einem Parallelthread erwaehnt habe: Qt Creator. Da bekommst Du in der Variablenansicht C++ auch als C++ angezeigt, und nicht die Innenansicht der Containerimplementierungen als kaum entwirrbares Zeigergedoens.
Eine std::map<std::string, int> ist da wirklich eine Liste von Paaren von strings und ints, und wenn in der Map ein neuer Eintrag dazu kommt, ist der brav markiert und der Rest unveraendert. Da sieht man wenigstens _was_ sich aendert.