Samstag, 21. Januar 2012

Breakpoint Problem mit Eclipse GDB (GSF)

Windows 7 SP1 32Bit
Eclipse IDE for C/C++ Developers Indigo Service Release 1
MinGW 20111118

Probiert man in Eclipse C Code zu debuggen verwendet man normalerweise GDB, in meinem Fall blieb der Debugger zwar am ersten Breakpoint stehen, läßt man das Teil weiterlaufen kommt diese Meldung in der Eclipse Console:

*stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x004013fe",func="main",args=[],file="..\src\bsp10022.c",fullname="c:\ws\wsc\bsp10022\src\bsp10022.c",line="14"},thread-id="1",stopped-threads="all"
Die Einstellungen sagten mir daß ich GDB verwende:



Auch in verschiedensten Foren fand ich keine Hilfe. Dann kommentierte ich diese beiden Zeilen aus:

 setvbuf(stdout, NULL, _IONBF, 0);
 setvbuf(stderr, NULL, _IONBF, 0);

die aufgrund dieses Problems eingefügt hatte: Keine Ausgabe in der Eclipse Console für printf

Schon reagiert der Debugger wie erwartet.


Links:
GDB Homepage

Freitag, 20. Januar 2012

Keine Ausgabe in der Eclipse Console für printf

Windows 7 SP1
Eclipse IDE for C/C++ Developers Version: Indigo Service Release 1

Verwendet man unter Windows printf in seinem C Programm und erwartet sich beim Ausführen eine Ausgabe auf der Eclipseconsole muß darauf warten bis das Programm beendet ist. Sind noch einige scanf drinnen muß man die Daten "blind" eingeben.

Dieses Verhalten ist dem Windowseclipse geschuldet, Einstellungen wie man dieses Verhalten direkt in Eclipse verändern kann habe ich leider keine gefunden.

Allerdings 2 Wege wie man die Ausgabe trotzdem bekommt.
(Da in der Codedarstellung die spitzen Klammern Probleme machen habe ich in den Codebeispielen das include von stdio.h weggelassen.)

1. fflush(stdout) nach printf();


main(){
 int wahl;
 float betrag;
 printf("\n\tE U R O R E C H N E R\n");
 printf("\n1 DM --> EURO\n2 EURO --> DM");
 printf("\n\nIhre Wahl: ");
 fflush(stdout);
 scanf("%i", &wahl);
 if(wahl == 1){
  printf("Bitte DM-BEtrag eingeben: ");
  fflush(stdout);
  scanf("%f", &betrag);
  printf("\n%.2f DM sind %.2f EURO", betrag, betrag * 0.51129);
 }
 if (wahl == 2){
  printf("Bitte EURO-Betrag eingeben: ");
  fflush(stdout);
  scanf("%f", &betrag);
  printf("\n%.2f EURO sind %.2f DM", betrag, betrag * 1.95583);
 }
}



2. setvbuf in der main methode


main(){
 setvbuf(stdout, NULL, _IONBF, 0);
 setvbuf(stderr, NULL, _IONBF, 0);
 int wahl;
 float betrag;
 printf("\n\tE U R O R E C H N E R\n");
 printf("\n1 DM --> EURO\n2 EURO --> DM");
 printf("\n\nIhre Wahl: ");
 scanf("%i", &wahl);
 if(wahl == 1){
  printf("Bitte DM-BEtrag eingeben: ");
  scanf("%f", &betrag);
  printf("\n%.2f DM sind %.2f EURO", betrag, betrag * 0.51129);
 }
 if (wahl == 2){
  printf("Bitte EURO-Betrag eingeben: ");
  scanf("%f", &betrag);
  printf("\n%.2f EURO sind %.2f DM", betrag, betrag * 1.95583);
 }
}

Links:
Eclipse Forum Eintrag

Samstag, 7. Januar 2012

C Compiler für Eclipse auf Windows

Windows 7 SP1 32 Bit
Eclipse IDE for C/C++ Developers Indigo Service Release 1
MinGW 20111118

Da Eclipse keinen C Compiler mitliefert muß man diesen selbst installieren. Nachdem mehrere Versuche cygwin zur Zusammenarbeit zu bewegen gescheitert sind bin, versuchte ich es mit MinGW, und siehe da, einfach den Installer ausführen und schon steht einem in Eclipse die entspreche Toolchain zur Verfügung, das Zeug compiliert einwandfrei und auch der Debugger haut hin.

Hier der direkte Link zur letzten Version des Installers: MinGW Installer

Links:
Blogeintrag zu MinGW
MinGW Homepage
Einführung ins Debuggen (pdf)

Mittwoch, 4. Januar 2012

Java Installation Error 1723 (missing DLL)

Windows 7 (Servicepack 1) 32 Bit

Aus irgendeinem Grund ließ sich auf meinem System kein Java mehr installieren und eine alte Version nicht deinstallieren, jeder Versuch endete mit dieser Meldung:



Zahlreiche Foreneinträge sahen das Problem bei einem korrupten Windows Installer und rieten in diesem Fall zu Registry Manipulationen mit Tools oder per Hand zu Fuß, mir war das alles ein bisschen zu vage, neu aufsetzten kommt nicht in Frage, darum ganz Old Style: Java Folder von einem System wo alles klappt rüberkopiert und den bin-Ordner in den Systempfad gelegt.

Der schnellste Weg auf der graphischen Oberfläche die Path Variable zu verändern:

Windows + Pause
-> Erweiterte Systemeinstellungen
-> Umgebungsvariablen
-> in Systemvariablen die Varialbe Path bearbeiten

Nachtrag:
Nachdem diese Lösung aber nicht dazu taugt die Java-Plugins in die verschiedenen Browser reinzubekommen mußte ich wohl oder übel das 1723er Problem an der Wurzel erledigen.

Nach einigen Stunden verschiedenster Versuche funktionierte das Löschen der Java-Installations-Reste (die Ursache des Problems) mit dem Tool Revo Uninstaller Pro (eine 30 Tage Trail Version). Dort einfach nach Java suchen und alle relevanten Einträge ausmerzen, bei mir waren erst beim zweiten Durchgang wirklich alle weg, dann funktionierte die Neuinstallation von Java wieder einwandfrei.

Link:
Wikipediaeintrag zu Umgebungsvarialbe