2010-09-21 8 views
14

Ich entwickle und führe C++ Programm in Eclipse CDT unter Linux.wie man cdt eclipse zeigen Laufzeitfehler (z. B. Segmentierungsfehler)

Das Problem ist, dass Eclipse CDT zeigt keine Laufzeitfehlermeldung (z. B. Segmentierung Fehler) in der Konsole, während ich solche Fehlermeldung erhalten kann, wenn Programm direkt mit der Befehlszeile ausgeführt wird.

+0

Haben Sie versucht, Ihren Code zu debuggen? – DumbCoder

+0

ja, mit Debug-Modus kann ich die Fehlermeldung erhalten. Ich frage mich nur, ob der "normale Lauf" auch die Nachrichten ausgeben kann. – elgcom

+2

Ich erinnere mich, einen Fehler "segmentation fault" in Galileo/Ganymed bekommen. Ich werde nicht gleich, nachdem ich in letzter Zeit regelmäßig Eclipse benutzt habe. Ich benutze jetzt die neueste, größte Veröffentlichung, Helios. Die Konsole ist einfach leer. –

Antwort

8

Hallo
Sie könnten versuchen, die Lauf Konfiguration wie diese

  • Registerkarte 'Main'> Anwendung ändern = /bin/sh
  • Registerkarte 'Argumente'> 'Programm Argumente' = -c "Debug/name_of_executable arg0 arg1 ... 2> /dev/stdout"

(ersetzen Sie "arg0 arg1 ..." durch Ihre Programmargumente, falls vorhanden)
Die Eclipse-Konsole gibt sowohl stdout, stderr als auch s aus Fehlermeldung (mit dem Präfix "/ bin/sh: line 1 ...")
Hinweis: Ich habe diese Lösung für eine ältere Version von Eclipse verwendet, bei der die Symptome identisch sind.

+0

Es ist eine Lösung für das ursprüngliche Problem, aber beachten Sie, dass Sie Ihr Programm mit solchen Laufkonfigurationen nicht debuggen können (da Eclipse denkt, dass das Programm, das Sie debuggen möchten, sh ist, werden Haltepunkte in Ihrem Code nicht ausgelöst) –

1

Ich würde empfehlen, dass Sie den Debugger verwenden, anstatt nur die ausführbare Datei auszuführen!

Ich hatte das gleiche Problem beim Versuch, eine vorhandene C++ - Lösung in CDT zu importieren. Ich fand es ein bisschen komisch, dass Eclipse im Falle eines Segmentierungsfehlers nichts gemeldet hat. Wenn Sie den Debugger verwenden, wird er Sie über die Segmentierungsfehler informieren und Sie auf die richtige Stelle im Code verweisen.