Code::Blocks Debugger



  • Hallo Leute 🙂

    Fange gerade erst mit C++ an und verwende Code::Blocks 20.03 auf Windwos 10. Leider habe ich direkt ein kleines Problem mit dem Debugger. Wenn ich meinen Code zeilenweise durchgehen möchte - mit den Schaltfläche "Run to Cursor" und "Step into" - dann beendet der Debugger nach einen kleinen Moment (in dem ich selbst nichts machen kann) mit der Nachricht "Debugger finished with status 1".

    Hier mein Probecode:

    #include <iostream>
    using namespace std;
    
    void test2(int &foo)
    {
    foo = 1;
    }
    
    int main()
    {
    int foo = 0;
    
    test2(foo);
    
    cout << foo;
    
    return 0;
    }
    

    Wenn ich mit meiner Intuation richtig liege, kann es sich hier doch bloß um eine Kleinigkeit handeln, oder? Ich meine, so viel gibt der Code noch nicht her ^^ Weiß jemand eventuell Rat?

    LG Sarah



  • Hab immer wieder mal Probleme mit dem Debugger in C::B, aber das hier ist kein solcher Fall.

    • gdb oder cdb?
    • 32 oder 64 bit gdb?
    • gdb version?
    • ist in der watchlist eine variable die du anschaust?
    • Wie wurde gdb installiert? (mit C::B?)
    • Benutzt du den 32bit gdb mit einem 64bit program oder andersrum?

    Einiges davon kannst du rausfinden in dem du unter
    Einstellungen -> Debugger nachschaust.
    Und da den Pfad raussuchst und ein terminal/console aufmachst (zb CMD) und den debugger mal vom terminal startest nachdem du in das Verzeichnis navigiert bist -> "gdb --version".

    Deaktiviere in den Debugger Einstellungen gegebenenfalls dass automatisch funktionsargument und lokale Variablen in der Watchlist sind.

    Meines Wissens nutzt Codeblocks immernoch den Debugger falsch und verwendet nicht das richtige interface. Da müssen die mal dran arbeiten.



  • Hallo 5cript,
    tausend Dank schon mal für deine Antwort.

    Also zu deinen Fragen:
    In den Default-Settings des Debuggers ist GDB angegeben. Mit viel Bit dieser arbeitet weiß ich leider nicht. Das Betriebssystem hat jedenfalls 64. Version des Debuggers wird mir in C::B mit 8.1 angegeben und im Watches-Fenster wird unter Locals die Variable foo angezeigt.

    Sagt dir das etwas? Mir leider nicht so viel ^^

    LG Sarah



  • 8.1 ist mittlerweile etwas angestaubt.
    Geh mal in die Einstellungen und nimm da die Sachen raus:
    "Watch local variables"
    "Watch function arguments"

    https://cdn.discordapp.com/attachments/422797374637867010/719951184340975686/unknown.png

    Und guck dir die nur an wenn du ein breakpoint erreichts.



  • hmm, hat leider nicht geholfen 😞
    Wenn 8.1 schon angestaubt ist, dann wäre es doch sicher sowieso erst mal sinnvoll die aktuelle Version zu laden? Oder ist es gar die aktuelle Version?

    Habe aber exakt den gleichen Code nun mal mit CodeBlocks 17 mit dem Debugger der Version 7.9.1 probiert und hier funktionierte es problemlos - ob nun die von dir angesprochenen Einstellungen aktiviert oder deaktiviert waren.

    LG Sarah



  • Zur Info: die aktuelle Version von gdb ist 9.2.



  • Hallo Th69,
    vielen Dank für den Hinweis.
    LG Sarah



  • Hallo Leute 🙂
    habe mir nun für Zuhause das mächtige Visual Studio zugelegt. Hier kann ich nun mit dem Debugger arbeiten, wie ich es mir vorgestellt habe. Hätte zwar lieber mit einem kleineren, handlicheren Programm gearbeitet, da es für meine Zwecke völlig ausreichend gewesen wäre, aber so kann ich nun endlich richtig beginnen 🙂

    Vielen Dank nochmals für eure Hilfe!

    LG Sarah



  • Nur FYI, Code::Blocks geht mir so auf den Keks, dass ich gerade meine eigene IDE entwickel.
    Stürzt mir beim Debuggen ständig ab.
    Visual Studio kann ich (noch) nicht vernünftig mit meiner Toolchain verwenden und auf Linux schon gar nicht.
    QtCreator ist beinahe da wo er sein muss, aber stört mich auch noch in details.
    Und der Rest hat auch Probleme.



  • wow, viel Spaß und Erfolg dabei!
    LG Sarah