Eclipse: CMD Anwenung debuggen

OP #3336387
Lesenswert?
• ▲
▼
Hallo miteinander

Ich habe bis jetzt nur mit Mikrocontrollern und Programmen mit GUI 
debugging betrieben. Nun möchte ich kleine CMD-Programme debuggen.
Kann mir jemand sagen, wie ich das anstellen soll? Wenn ich mein 
Programm debuggen will, öffnet sich die Konsole nicht mehr, und ich kann 
keine Benutzereingaben machen.


Besten Dank für die Hilfe
MFG
Patrick
OP #3337234
Lesenswert?
• ▲
▼
Doch, ist aktiviert. nur scheint es, dass hier Eclipse schon seit 4 
Jahren einen riesen Bug in der Konsole hat (auf Windows):
1
printf("Hallo Welt\r\nWer bist du?");
2
scanf("%s", &Name);
3
printf("Hallo %s", Name);

Hier wird nur gerade "Hallo Welt" ausgegeben, und der Rest kommt erst 
nachdem ich einen Text eingegeben habe.

Und irgendwie hat es bis jetzt keine Lösung gegeben.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=173732
Nur scheint es bei mir nicht zu funktionieren.
Persönliche Seite #3338197
Lesenswert?
• ▲
▼
Patrick B. schrieb:
> Und irgendwie hat es bis jetzt keine Lösung gegeben

Dafür ein Workaround:
1
If i use fflush(stduot) after each printf explicitly everythings works fine
oder
1
According to Jordan Rhee (in bug 184582), this behavior is not ANSI-compliant.
2
I didn't verify this. He proposes to use "setvbuf(stdout, NULL, 0, _IONBF);", which is a great workaround for me.

Patrick B. schrieb:
> nur scheint es, dass hier Eclipse schon seit 4 Jahren einen riesen Bug
> in der Konsole hat (auf Windows)

Das Problem ist aber eher Windows als Eclipse:
1
The problem is: The eclipse console is not a terminal.
2
On unix systems, the method of choice is to create a pseudo
3
terminal (pty) and connect the child process stdio to it.
4
This way the child process behaves exactly in the same way
5
as in an interactive terminal.
6
CDT does exactly that for Linux, Mac OS X, Solaris and some
7
other supported platforms.  We don't have a Pty (or something
8
of that kind) on Windows, therefore interactive console mode
9
programs don't work as expected.
OP #3338638
Lesenswert?
• ▲
▼
Nur funktionieren diese Workarounds nicht (Ich nutze Win 8 64Bit):

ich habe dies versucht, leider ohne Erfolg:
1
printf("Hallo Welt\r\nName:");
2
fflush(stdout);
3
scanf("%s", &Name);
1
setvbuf(stdout, NULL, 0, _IONBF);
2
setvbuf(stderr, NULL, 0, _IONBF);
3
printf("Hallo Welt\r\nName:");
4
scanf("%s", &Name);
1
setvbuf(stdout, NULL);
2
printf("Hallo Welt\r\nName:");
3
scanf("%s", &Name);

Bei Eclipse kann man ja sagen, dass die Exe-Datei nicht im Editor 
geöffnet werden soll, sondern dass er diese über die Konsole öffnet. 
Geht das beim Debuggen auch, damit nicht die Eclipse-Konsole verwendet 
wird?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren