Debuggen Sie die Windows-Anwendung auf der Linux-Box in Eclipse CDT

9

Ich bin von Windows zu Ubuntu Linux umgezogen, und jetzt möchte ich hier eine Entwicklungsumgebung einrichten. Das Problem ist, dass ich

brauche
  1. C / C ++ - IDE vergleichbar mit Visual Studio
  2. Möglichkeit, Windows PE-Binärdateien zu generieren
  3. Weise debuggen Windows PE-Binärdateien

Als erstes habe ich Code :: Blocks ausprobiert. Hier finde ich einen Leitfaden für die Einrichtung für die Cross-Entwicklung, also habe ich es geschafft " Hallo Welt "kompiliert und läuft unter Wine. Darüber hinaus funktionierte das Debugging auch.

Aber dann habe ich festgestellt, dass Eclipse + CDT-Plugin weit fortgeschrittenen IDE ist. Ich verbrachte einige Zeit und schließlich Projekt kompiliert und verknüpft.

Jetzt versuche ich, dass die MinGW Insight-Version von GDB in Eclipse CDT funktioniert. Die einfache Verwendung des in Code :: Blocks Guide beschriebenen Debuggers funktioniert nicht mehr. Ich erhalte weiterhin die Fehlermeldung "Error creating session".

Also meine Frage ist, wie kann ich MinGW GDB unter Wine als Debugger Back-End in Eclipse verwenden? Oder, was ist die beste IDE für Linux- & gt; Windows Cross-Entwicklung?

    
Sergey Haritonov 29.07.2009, 23:53
quelle

3 Antworten

3

Ich frage mich, dass das noch niemand beantwortet hat.

  1. QtCreator. Seien Sie nicht verwirrt von seinem Namen, QtCreator funktioniert ziemlich gut mit jeder Art von C ++ - Code, Sie müssen nicht in Qt Code, um es zu verwenden. Es ist genau wie FOSS Visual Studio: es hat sogar eine Syntaxprüfung "on fly".

  2. MinGW. Hier ist nicht viel zu sagen, es erstellt nur Win PE ausführbare Dateien, und es funktioniert. Es ist in Repositories verfügbar. Beachten Sie, dass Win-GUI-Anwendungen ein spezielles Bit in der PE-Kopfzeile haben. Um eine GUI-Anwendung mit MinGW zu erstellen, müssen Sie eine Option -mwindows übergeben, um dieses Bit zu setzen.

  3. Das ist ein Problem. Wirklich: Ich versuche nur, eine Windows-Anwendung zu debuggen, und habe noch keinen Weg gefunden, es zu tun. Ich werde hier kurz zurückrufen, was ich bisher versucht habe, nur damit Sie nicht auf meine Harken treten:

    • winedbg . Wahrscheinlich sollte es funktionieren, aber für mich hat es nicht funktioniert. Wenn ich einen Haltepunkt setze, d. H. Wie br 43 , heißt es Unable to add breakpoint (unknown address 7b860807) .

    • winedbg . Ja, schon wieder, aber dieses Mal werden wir es wie folgt verwenden: winedbg --gbd , damit es Befehle an gdb sendet. Wahrscheinlich ist dies der einzige Weg, um eine Anwendung zu debuggen, aber sie hat einige Nachteile: Erstens müssen Sie den Debugger beenden, um eine Anwendung neu zu starten. Wenn Sie run eingeben, heißt das, dass das entfernte Ziel dies nicht unterstützt. Zweitens habe ich keine Ahnung, wie man eine Multithread-Anwendung debuggt. Als ich das anfing, bin ich auf einen Fehler Non-stop mode requested, but remote does not support non-stop gestoßen, und nachdem ich einen Haltepunkt gesetzt und gestartet habe, heißt es: Cannot insert breakpoint 1. und Cannot access memory at address 0x401654 . Um dies zu erreichen, musste ich meine .gdbinit Datei umbenennen (d. H. Der Non-Stop Modus ist dort eingestellt) .

    • gdb.exe . Ich war mir sicher, dass ich einen Weg gefunden habe: Die einfache Verwendung einer Windows-Version von gdb sollte Probleme lösen; mehr darüber, für mich, als ich ein Emacs Typ bin, wäre es absolut das selbe wie das Debuggen mit nativem gdb. Aber ach, die Windows gdb hat einfach nicht funktioniert. Wenn ich es ausführe und irgendeinen Befehl gebe, tut es einfach nichts. Es reagiert nur auf Ctrl-c und Ctrl-z -Befehle. Wahrscheinlich werde ich in meiner Freizeit versuchen, eine Frage darüber auf der Mailingliste zu stellen. Nun, jetzt können wir es nicht benutzen ...

Was haben wir mit debug gemacht? Wahrscheinlich suchen Sie einen anderen Windows-Debugger, der unter WINE funktioniert. Wenn ich mich richtig erinnere, hat OllyDbg gearbeitet, aber ich weiß im Moment nicht, wie man einen Quellcode anzeigt.

    
Hi-Angel 15.08.2014, 06:57
quelle
0

Sie können versuchen NetBeans . Es ist eine gute, freie, Open Source und Cross Platform Support IDE.

    
Zhang LongQI 03.12.2012 11:19
quelle
-2

Führen Sie Windows in einer VM aus?

Ernsthaft, Ihre Frage ist gut, aber es ist wahrscheinlich nicht wert, die Zeit zu verbringen, um die Antwort herauszufinden (besonders: da niemand eine fertige Antwort zu haben scheint). Wenn Sie echte Arbeit zu erledigen haben, ist das native Windows oder Windows in einer VM die Antwort.

    
Alex I 15.08.2014 07:02
quelle

Tags und Links