CLion zeigt in Debug keine Ausgabe an

Lesezeit: 2 Minuten

Benutzeravatar von ENBYSS
ENBYSS

Wenn ich das Programm starte, ist dies die Ausgabe:

-------------------- HASHMAP MANAGEMENT BOOT MENU -------------------------
Would you like to:
(a) create a new hashmap
(b) load an existing one
(q) exit
>

Beim Debuggen wird jedoch nichts davon angezeigt. Beim Überprüfen des Debugs werden die printf () -Befehle überprüft, aber es weigert sich, sie in der Konsole anzeigen zu lassen. Die Eingabe wird registriert, aber die Ausgabe kommt nie.

int main(void){
    bool on = true;
    char choice=" ";
    int status = 0;
    while(on){
        if(status == -1){
            printf("\n[ERROR] : HASHMAP NOT INITIALISED\n");
        }
        printf("\n-------------------- HASHMAP MANAGEMENT BOOT MENU -------------------------\n");
        printf("Would you like to:\n(a) create a new hashmap\n(b) load an existing one\n(q) exit\n> ");

        scanf("%c",&choice);
        ...
        ...
    }
}

So ist der Anfang des Codes, ohne alle #includeS. Außerdem sagt CLion aus irgendeinem Grund, dass der Code, den ich baue, ist task2-a.c | Debug falls das eine hilfe ist. task2-ac ist der Name der C-Datei, die erstellt wird. Ich weiß nicht, was los ist …

Update: Debugging funktioniert hervorragend auf Ubuntu 17.04 Clion 2017.2. Es funktioniert einfach nicht unter Windows 10 CLion 2017.3.

Putten setbuf(stdout, 0); bevor eine printf-Anweisung oder eine Ausgabe erfolgt, wurde dieses Problem behoben.

  • Es gibt tatsächlich ein Problem mit der stdout-Pufferung unter Windows, dessen sind wir uns bewusst (intellij-support.jetbrains.com/hc/en-us/community/posts/…). Vielen Dank für die Veröffentlichung des Workarounds hier!

    – Eldar Abusalimov

    14. Dezember 2017 um 9:46 Uhr

  • @EldarAbusalimov Scheint, dass das Problem in CLion 2019.3 immer noch besteht; Als Anmerkung, setbuf ist veraltet, also sollte jeder es verwenden setvbuf stattdessen.

    – Matzen

    20. Januar 2020 um 15:38 Uhr

  • es hängt davon ab, ob. setbuf scheint noch zu funktionieren. und es funktioniert prima.

    – Oleg Kokorin

    5. Mai 2021 um 12:07 Uhr

  • Verwenden Sie setvbuf wie folgt: setvbuf(stdout, NULL, _IONBF, 0);

    – Mattwmaster58

    16. September 2021 um 20:10 Uhr

Wenn Sie die integrierte clion-Konsole nicht verwenden möchten, können Sie das Problem lösen, indem Sie den von clion verwendeten Standard-Debugger ändern.

Unter Settings => Toolchain => <your compiler> => Debugger Ändern Sie Bundled GDB in den Debugger Ihres Compilers, z. B. MinGW:
Clion-Einstellungen

1443830cookie-checkCLion zeigt in Debug keine Ausgabe an

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy