[Problem] Debugger in Code::Blocks



  • Hi Leute,

    ich habe mir vor ein paar Tagen mal die IDE Code::Blocks herutnergeladen, da diese Freeware ist. Nun habe ich ein kleines Programm geschrieben, welches irgendwo einen kleinen Fehler mit einem Zeiger hat, und nun würde ich gern wissen wo der Fehler genau liegt. Ich dachte mir ich könnte den Debugger von Code::Blocks verwenden, aber irgendwie funktioniert der nicht. Wenn ich einen Haltepunkt setze ignoriert der den vollkommen und wenn ich keinen setze, dann läuft der auch weiter. Muss man den Debugger noch noch irgendwie konfigurieren oder ist der noch nicht richtig funktionstüchtig? Ich danke auch schonmal...

    MfG Apo



  • Hallo Apocalypse,

    Code::Blocks ist nur die IDE und hat mit dem Debugger, Compiler, Linker nichts zu tun. Daher weiß ich nicht genau was du für einen Debugger verwendest, schätze aber mal den GNU Debugger. Dieser muss eigentlich aber nicht noch vorher speziell konfiguriert werden. Hast du unter Projekt->Buil Options->Tab Compiler->Tab Compiler Flags->Produce debugging symbols das Häckchen gesetzt? Dann eigentlich nur noch irgendwo im Code einfach mal Rechtsklick->Run to cursor drücken und es sollte funktionieren.

    Gruß
    yogle



  • Hey..., danke! Es hat funktioniert. Es lag daran, dass das Häkchen nicht gesetzt war! Nun funktioniert alles wunderbar. Danke!

    MfG Apo



  • Hallo,

    ich habe ein anderes Problem mit dem Debugger.
    Ich möchte, während das Programm Schritt für Schritt läuft, einige Variablen und ihren Inhalt überwachen. Leider ist mir bis jetzt dazu keine elegante Methode untergekommen. Das einzige, was funktioniert, ist unter Settings -> Plugin Settings -> GDB Debugger -> Display Debuggers Log anzuschalten. Dann muss ich mir aber die Ergebnisse aus dem riesigem Log (extra Reiter unter Debugger erscheint nix) zusammen suchen. Mit den Watches aus den Debugoptionen komme ich leider überhaupt nicht zurecht. (Zeigt mir grundsätzlich nie etwas an).

    Wie kann ich also elegant den Inhalt einer Variablen verfolgen?

    Nutze C::B mit den GDB.



  • Wieso kommst du mit den Watches nicht zurecht? Bei mir funktionierts ganz gut (nicht perfekt aber ok). Welche CB-Version hast du denn?



  • Ich hab den RC2. Wie funktionieren die denn?

    int main()
    {
        for(int i = 0; i<10; ++i)
        {
            std::cout << i << std::endl;
        }
    }
    

    Nachdem ich das gesamte Programm in Einzelschritten durchgegangen bin, kommt:

    No symbol "i" in current context.

    Dabei habe ich unter "Edit watches" unter Add einfach "i" als Item eingetragen.



  • RC2 ist eine komplett veralterte Version. Benutz die Nightly Builds ( http://www.codeblocks.org/nightly/ ) 🙂



  • Panke schrieb:

    Nachdem ich das gesamte Programm in Einzelschritten durchgegangen bin, kommt:

    No symbol "i" in current context.

    Dabei habe ich unter "Edit watches" unter Add einfach "i" als Item eingetragen.

    das ist korrekt. die lokale variable ist nach dem programmlauf tot, weg, gelöscht, im nirvana, inexistent, unsichtbar, virtuell und sogar nicht mehr im kontext.



  • das ist korrekt. die lokale variable ist nach dem programmlauf tot, weg, gelöscht, im nirvana, inexistent, unsichtbar, virtuell und sogar nicht mehr im kontext.

    Ja, natürlich. Aber ich hätte sie gerne während des Programmlaufs angezeigt gehabt, also dann, wenn sie noch existiert. Unter Debugging Windows -> Watches kann man sich aber alle lokalen Variablen anzeigen lassen. Das tut es für meine Verhältnisse auch.

    Edit:

    RC2 ist eine komplett veralterte Version. Benutz die Nightly Builds ( http://www.codeblocks.org/nightly/ ) 🙂

    Die Nightly Builds gibt's doch nur für Windows, oder?
    Meine aber RC3 wäre auch nicht mehr allzu lang hin.



  • Panke schrieb:

    Edit:

    RC2 ist eine komplett veralterte Version. Benutz die Nightly Builds ( http://www.codeblocks.org/nightly/ ) 🙂

    Die Nightly Builds gibt's doch nur für Windows, oder?
    Meine aber RC3 wäre auch nicht mehr allzu lang hin.

    Nein, die gibts auch fuer Linux, normalerweise (aber nicht alle Tage) sogar eigene RPMs fuer Fdora und DEBs fuer Ubuntu. Ansonsten halt selber kompilieren; es lohnt sich!



  • Hallo zusammen,

    ich würde auch gern den Debugger unter Code:Blocks 8.02 benutzen, nur kann ich Project --> Build options ... gar nicht erst auswählen um etwas einzustellen der Menüpunkt ist grau hinterlegt:

    Kann mir diesbezüglich jemand helfen, bin hier am verzweifeln 😡



  • yogle schrieb:

    Hallo Apocalypse,

    Code::Blocks ist nur die IDE und hat mit dem Debugger, Compiler, Linker nichts zu tun. Daher weiß ich nicht genau was du für einen Debugger verwendest, schätze aber mal den GNU Debugger. Dieser muss eigentlich aber nicht noch vorher speziell konfiguriert werden. Hast du unter Projekt->Buil Options->Tab Compiler->Tab Compiler Flags->Produce debugging symbols das Häckchen gesetzt? Dann eigentlich nur noch irgendwo im Code einfach mal Rechtsklick->Run to cursor drücken und es sollte funktionieren.

    Gruß
    yogle

    Hat keiner einen Rat für mich?

    Projekt->Buil Options kann ich nicht auswählen, da es grau hinterlegt ist.

    Ich habe Adminrechte auf dem PC und diese Version installiert:
    codeblocks-8.02mingw-setup.exe

    Benutze WinXP.



  • Jetzt habe ich meinen Fehler gefunden, hatte immer nur ein "Empty File" angelegt und noch kein Projekt.

    Ist es aber auch möglich ein einzelnes C++-Programm zu debuggen ohne ein Projekt anzulegen?



  • Nein. Aber Projekt anlegen ist ja auch net so ein Beinbruch. Projekt anlegen -> sources hinzufügen -> fertig.



  • Hey, ich benutze mittlerweile Code::Blocks 10.05

    Ich kann einfach nicht debuggen, habe mittlerweile Code::Blocks nocheinmal komplett neu drauf getan au fdie festplatte, trotzdem kann ich einfahc nicht debuggen.

    Also ein kleines Beispiel:
    http://www.youtube.com/watch?v=uVz0IaIh8TM&NR=1
    Dieses Video habe ich 1 zu 1 nachgemacht, ohne Erfolg. Mittlerweile geht gar nicht mehr das Fesnter auf, bis ich auf Schritt weiterklicke, dort popt das Fenster 0,1sek auf & schließt direkt wieder und er ist durchs Programm gelaufen.
    vorher lief er automatisch einfach durch. Was mache ich falsch?! Kleiner Hinweis: Bin totaler Anfänger


Anmelden zum Antworten