Altes C++ VS Programm mit Eclipse Debuggen

Gast #6431455
Lesenswert?

Hallo Leute. Ich wollte meine Programmierfähigkeiten wieder auffrischen 
(Jahre lang nicht gemeldet). Damals hab ich in der Uni noch mit Visual 
Studio programmiert. Das war c++11... Nun hab ich mich für Eclipse mit 
GCC zum proggen entschieden... Ich hab allerdings Probleme mit dem 
Debuggen. Das Launching funktioniert bei dem alten Projekt nicht. Hallo 
World läuft wunderbar. Also der Compiler sitzt drin!

Wenn ich starten will dann passiert nichts. Also Ein Configuration -> 
c/c++ Application -> ja und dann kann ich bei 'Project' schon nichts 
"Briesen" denn das ist komplett leer!

Vielen Dank!
Gast #6431525
Lesenswert?

Du kannst ein neues Projekt aufmachen und die Dateien per Drag&Drop ins 
leere Projekt einziehen.

Auf der anderen Seite gibts VisualStudio als Community Version 
kostenlos, gibt also keinen Grund zu wechseln.
Gast #6431543
Lesenswert?

nicht"Gast" schrieb:
> Du kannst ein neues Projekt aufmachen und die Dateien per
> Drag&Drop ins
> leere Projekt einziehen.
>
> Auf der anderen Seite gibts VisualStudio als Community Version
> kostenlos, gibt also keinen Grund zu wechseln.

Ja, richtig. Ich möchte allerdings nicht unbedingt Microsoftabhängig 
sein. Noch benutze ich zwar Windows, gedenke aber auf Linux umzusteigen.
#6431574
Lesenswert?

Dann nimm gcc/Eclipse für neue Projekte, und debugge dein altes Projekt 
in Visual Studio.

Wenn das erweitert werden soll, ist jetzt der Zeitpunkt gekommen, das 
alte Projekt auf die gcc-toolchain umzuschreiben. Nutzt das allerdings 
Micorsoft-spzifischen Kleinkram wie MFC o.ä.,solltes du das mit Eclipse 
nochmal überdenken.

Oliver
Gast #6431576
Lesenswert?

Error in final launch sequence:

Failed to execute MI command:
-file-exec-and-symbols "D:/Studium/Informatik 
I/Exception-Handling/Exception-Handling/Exc-Main.cpp"
Error message from debugger back end:
"D:/Studium/Informatik 
I/Exception-Handling/Exception-Handling/Exc-Main.cpp": not in executable 
format: file format not recognized

Hallo nochmal. Ich bekomme jetzt diesen Fehlercode...
Weiß jemand Rat?
Gast #6431581
Lesenswert?

Oliver S. schrieb:
> Dann nimm gcc/Eclipse für neue Projekte, und debugge dein altes
> Projekt
> in Visual Studio.
>
> Wenn das erweitert werden soll, ist jetzt der Zeitpunkt gekommen, das
> alte Projekt auf die gcc-toolchain umzuschreiben. Nutzt das allerdings
> Micorsoft-spzifischen Kleinkram wie MFC o.ä.,solltes du das mit Eclipse
> nochmal überdenken.
>
> Oliver

Nein. Es ist eine einfache Konsolenanwendung.
Gast #6431591
Lesenswert?

Dingens schrieb:
> Error message from debugger back end:
> "D:/Studium/Informatik
> I/Exception-Handling/Exception-Handling/Exc-Main.cpp": not in executable
> format: file format not recognized

mit einem Quelltext kann der Debugger nix anfangen, in der Launch Config 
muss schon das executable eingetragen werden.
Gast #6431714
Lesenswert?

Oliver S. schrieb:
> Eclipse erstellt die launch configuration doch automatisch.
>
> Im Projektexplorer den debug-Ordner öffnen, auf das exe da drin
> rechtsklicken, und "debug as ..." auswählen.
>
> Funktioniert das nicht, gibt es ein Problem mit der
> toolchain-Installation.
>
> Oliver
Neu erstellte Beispielprogramme wie "Hello World" funktionieren super. 
Wenn ich das Alte Projekt importiere wie hier erklärt:
https://rsarte.hcldoc.com/help/index.jsp?topic=%2Forg.eclipse.cdt.doc.user%2Fgetting_started%2Fcdt_w_debug.htm

Dann wird bei mir (im Gegensatz zur Anleitung) allerdings keine .exe 
oder makefile erstellt. Keine Ahnung...
Gast #6432050
Lesenswert?

Das Projekt hab ich über

Oliver S. schrieb:
> Was genau verstehst du unter „Projekt importieren“ ?
>
> Beschriebe mal, wie du das gemacht hast.
>
> Oliver

Ich hab's jetzt so gemacht, dass ich ein hallo world Project gestartet 
habe und die .cpp Datei durch meine cpp + headder ersetzt habe.

Das funktioniert. Nur unterstützt Eclipse GCC leider nicht die 
Funktionen strlen und strcpy. (Ja string und cstring hab ich inkludiert. 
Hat nichts genützt)

Außerdem funktioniert sprintf_s nicht... Aber ich kann jetzt debuggen.
Um oben genanntes zu lösen hatte ich noch keine Zeit.

Leider bin ich nicht Zuhause und kann keinen code Posten.
Gast #6432307
Lesenswert?

Mark B. schrieb:
> Dingens schrieb:
>> Nur unterstützt Eclipse GCC leider nicht die Funktionen strlen und strcpy.
>> (Ja string und cstring hab ich inkludiert. Hat nichts genützt)
>
> Selbstverständlich verfügt der GCC, oder besser gesagt: die
> C-Standardbibliothek über diese Funktionen.
>
> Was ist denn die Fehlermeldung?

Siehe Bild.
Angehängte Dateien:
Gast #6432354
Lesenswert?

Dingens schrieb:
> Mark B. schrieb:
>> Dingens schrieb:
>>> Nur unterstützt Eclipse GCC leider nicht die Funktionen strlen und strcpy.
>>> (Ja string und cstring hab ich inkludiert. Hat nichts genützt)
>>
>> Selbstverständlich verfügt der GCC, oder besser gesagt: die
>> C-Standardbibliothek über diese Funktionen.
>>
>> Was ist denn die Fehlermeldung?
>
> Siehe Bild.

Hast du die Fehlermeldung gelesen?
Gast #6432374
Lesenswert?

mh schrieb:
> Dingens schrieb:
>> Mark B. schrieb:
>>> Dingens schrieb:
>>>> Nur unterstützt Eclipse GCC leider nicht die Funktionen strlen und strcpy.
>>>> (Ja string und cstring hab ich inkludiert. Hat nichts genützt)
>>>
>>> Selbstverständlich verfügt der GCC, oder besser gesagt: die
>>> C-Standardbibliothek über diese Funktionen.
>>>
>>> Was ist denn die Fehlermeldung?
>>
>> Siehe Bild.
>
> Hast du die Fehlermeldung gelesen?

Uff. Danke für die riesen große Hilfe! Nein, Natürlich nicht.

Du kannst dir ja gerne die Doku zur Funktion durchlesen und mich dann 
nochmal fragen.
Gast #6432400
Lesenswert?

Dingens schrieb:
> mh schrieb:
>> Hast du die Fehlermeldung gelesen?
>
> Uff. Danke für die riesen große Hilfe! Nein, Natürlich nicht.
Gern geschehen! Du solltes das allerdings dringend nachholen.

> Du kannst dir ja gerne die Doku zur Funktion durchlesen und mich dann
> nochmal fragen.
Ich sehe nicht so ganz den Sinn. Aber wenn du unbedingt willst. Hast du 
die Fehlermeldung gelesen?
Gast #6432415
Lesenswert?

Dingens schrieb:
> Mark B. schrieb:
>> Dingens schrieb:
>>> Nur unterstützt Eclipse GCC leider nicht die Funktionen strlen und strcpy.
>>> (Ja string und cstring hab ich inkludiert. Hat nichts genützt)
>>
>> Selbstverständlich verfügt der GCC, oder besser gesagt: die
>> C-Standardbibliothek über diese Funktionen.
>>
>> Was ist denn die Fehlermeldung?
>
> Siehe Bild.

Das Programm Funktioniert jetzt... Die Lösung: Löschen der 
Fehlermeldung... WTF, also das es tatsächlich ein so sonderbares 
IDE-Problem ist, hätte ich niemals gedacht... ich bin schockiert und 
weiß gar nicht ob ich bei Eclipse bleiben soll.
Gast #6432457
Lesenswert?

mh schrieb:
> Dingens schrieb:
> Ich empfehle dir die Doku. Da fehlt kein Argument.
>
> Ernsthaft? Ich bin mir relativ sicher, dass ich bis 3 zählen kann und
> dein Compiler stimmt mir zu.

Nur braucht die Funktion nicht zwangsläufig drei Argumente, deshalb 
sollte man in die Doku gucken. Aber hey du bist sicher zu schlau dafür, 
denn du kannst bis 3. zählen.
Gast #6432507
Lesenswert?

Oh Mann, Jungs habt ihr's jetzt bald?

Nochmal meine Frage:
Mein gcc meckert, wenn ich keine 3 Parameter nutze.
Kann sein dass Du eine überladene strncpy() nutzt?

Ich finde bei gcc keine Version, in der der dritte
Parameter von strncpy optional ist.
Gast #6432511
Lesenswert?

Marc schrieb:
> Oh Mann, Jungs habt ihr's jetzt bald?
>
> Nochmal meine Frage: Mein gcc meckert, wenn ich keine 3 Parameter nutze.
> Kann sein dass Du eine überladene strncpy() nutzt?
>
> Ich finde bei gcc keine Version, in der der dritte Parameter von strncpy
> optional ist.

Hallo. Nein. Ich nutze strcpy ohne n!
Aber das war nicht das Problem. Ich hatte genauso Fehlermeldungen bis 
ich diese mittels Rechtsklick -> deleted gelöscht habe!

Ich wollte den mh nur etwas ärgern, weil er so arrogant ist und die 
Frage nicht richtig gelesen hat. Anfangs hatte ich erwähnt, dass ich 
strcpy ohne n! Nutze. Es war etwas schlampig von mir den Screenshot mit 
strncpy zu verwenden. Der Fehler war aber identisch.

:)
Gast #6432515
Lesenswert?

Dingens schrieb:
> mh schrieb:
>> Dingens schrieb:
>> Und nun?
>>
>> Gute Frage! Hast du etwas dazu gelernt?
>
> Immer. Und du?

Nicht über C++. Mir ist die Funktion strncpy schon seit ANSI C bekannt.

Marc schrieb:
> Oh Mann, Jungs habt ihr's jetzt bald?
>
> Nochmal meine Frage:
> Mein gcc meckert, wenn ich keine 3 Parameter nutze.
> Kann sein dass Du eine überladene strncpy() nutzt?
Das würde undefined behavior auslösen.

> Ich finde bei gcc keine Version, in der der dritte
> Parameter von strncpy optional ist.
Warum sollte gcc das tun? Dafür gibts strcpy?!
Gast #6432518
Lesenswert?

Also Sorry, aber dieses Gehabe war absolut unnötig.

Du schreibst nur dass strcpy nicht geht und im Screenshot nutzt du 
strncpy. Und dazu die Fehlermeldung.
Du schreibst nicht, dass du DANACH wieder strcpy nutzt.

Dieses Gegockeln hat micht jetzt ne Stunde gekostet und ich wollte nur 
helfen/verstehen. Das was Ihr hier tut hat das Forum nicht verdient!
Gast #6432520
Lesenswert?

Marc schrieb:
> Also Sorry, aber dieses Gehabe war absolut unnötig.
>
> Du schreibst nur dass strcpy nicht geht und im Screenshot nutzt du
> strncpy. Und dazu die Fehlermeldung.
> Du schreibst nicht, dass du DANACH wieder strcpy nutzt.
>
> Dieses Gegockeln hat micht jetzt ne Stunde gekostet und ich wollte nur
> helfen/verstehen. Das was Ihr hier tut hat das Forum nicht verdient!

Dafür entschuldige ich mich bei dir.
Gast #6432534
Lesenswert?

mh schrieb:
>> Kann sein dass Du eine überladene strncpy() nutzt?
> Das würde undefined behavior auslösen.

Nein, probiers aus, es geht:
// Selten dämlicher Code, aber unter C++ geht's
char *strncpy(char *dest, const char *src) {
    return strncpy(dest,src,100);
}
Compiliert mit gcc in C++11, wie oben beschrieben.

>> Ich finde bei gcc keine Version, in der der dritte
>> Parameter von strncpy optional ist.
> Warum sollte gcc das tun? Dafür gibts strcpy?

Nicht's für ungut, aber deine Art rhetorische Fragen zu stellen, helfen 
nicht immer.
Besondern wenn der gleiche Charakter antwortet...

BTW: GCC tut einige Dinge die nicht mit dem Standard konform sind (wenn 
man es will).

Schönen Abend.
Gast #6432535
Lesenswert?

Marc schrieb:
> Dieses Gegockeln hat micht jetzt ne Stunde gekostet und ich wollte nur
> helfen/verstehen. Das was Ihr hier tut hat das Forum nicht verdient!

Es tut mir Leid, dass du Zeit damit verschwendet hast. Allerdings bin 
ich nicht sicher, warum ich mit daran Schuld sein soll. Ich hab dir 
schon um 21:36 geantwortet, dass der Standard nur die 3 Parameter 
Version vorsieht.
Gast #6432544
Lesenswert?

Marc schrieb:
> Nein, probiers aus, es geht:
> // Selten dämlicher Code, aber unter C++ geht's
> char *strncpy(char *dest, const char *src) {
>     return strncpy(dest,src,100);
> }
> Compiliert mit gcc in C++11, wie oben beschrieben.

Nur weil es ohne Fehler oder Warnung compiliert, bedeutet nicht, dass es 
nicht UB ist.

Aber ich muss meine Vorherige Aussage korrigieren. Es ist nicht UB, da 
du dieses strncpy nicht im namespace std definierst oder deklarierst. 
Allerdings sagt der Standard, es ist "unspecified", ob strncpy außerhalb 
von namespace std bekannt ist (std::strncpy gibt es sicher, strncpy 
nicht).
#6432833
Lesenswert?

Dingens schrieb:
> Mark B. schrieb:
>> Dingens schrieb:
>>> Nur unterstützt Eclipse GCC leider nicht die Funktionen strlen und strcpy.
>>> (Ja string und cstring hab ich inkludiert. Hat nichts genützt)
>>
>> Selbstverständlich verfügt der GCC, oder besser gesagt: die
>> C-Standardbibliothek über diese Funktionen.
>>
>> Was ist denn die Fehlermeldung?
>
> Siehe Bild.

So viele Fehler in 3 Zeilen Code...

merciless

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