9 Stimmen

Wie kann man Eclipse dazu bringen, Cygwins GDB einen Posix-Pfad zur ausführbaren Datei zu geben?

Ich verwende Eclipse unter Windows, um C++ mit der Cygwin-Toolchain zu programmieren. Ich würde es gerne auch zum Debuggen verwenden, aber mein Problem ist das folgende:

  • Die zu debuggende ausführbare Datei befindet sich in einem Unterordner des Arbeitsbereichs (wohl der Standard), aber nicht im eigentlichen Projekt, aus dem die ausführbare Datei erstellt wird.
  • Eclipse und GDB haben unterschiedliche Pfadformate: Eclipse arbeitet mit Windows-Pfaden, während GDB mit Posix-Pfaden arbeitet. Eclipse kennt D:\Path\To\Exe während GDB benötigt /cygdrive/d/Path/To/Exe .
  • Eclipse beharrt dass die ausführbare Datei zum Debuggen gefunden wird, wenn ich den Pfad im Dialogfeld "Debug-Konfigurationen..." eingebe. Die Schaltfläche "Debuggen" ist deaktiviert, bis der Pfad korrekt ist.
  • Eclipse scheint sich nicht zu ${workspace_loc} in das jeweilige Eingabefeld ein.

Gibt es eine versteckte Option, die ich nicht kenne? Hatten Sie das Problem schon einmal?

Was ich bis jetzt ausprobiert habe

  • Eclipse zwingen, den von mir eingegebenen Pfad an GDB zu übergeben --- hat nicht funktioniert.
  • Tüfteln mit Quellensuchpfaden und Pfadzuordnungen --- hat nicht funktioniert ist es wirklich nur für Quelldateien.
  • Erstellen eines C++-Projekts für den Ausgabeordner, in dem sich die ausführbare Datei befindet, damit ich einen relativen Pfad zur ausführbaren Datei innerhalb des Projekts angeben kann --- hat nicht funktioniert.

Dinge, die ich noch versuchen könnte

  • Verwenden Sie die .gdbinit Datei, um den von Eclipse angegebenen Pfad zu verwerfen und die echte ausführbare Datei mit Posix-Pfaden zu laden --- das habe ich versucht, aber es war nicht sehr schwer.
  • Spezifiziere einen Wrapper als Argument für GDB --- verschmutzt die Wurzel meines Arbeitsbereichs.
  • Mein eigenes Plug-in für den Fall bereitstellen --- fügt ein weiteres Stück Code hinzu, das in einer anderen Sprache gepflegt werden muss.

13voto

In Eclipse unter Preferences->C/C++->Debug->"Common Source Lookup Path" eine neue Pfadzuordnung hinzufügen. Als Kompilierungspfad sollten Sie einen Unix-ähnlichen Pfad verwenden (z.B. /cygdrive/c), als lokalen Systempfad sollten Sie einen Windows-ähnlichen Pfad verwenden (z.B. c:).

1voto

andrewdotn Punkte 29643

Cygwin wird mit einem Programm namens cygpath um Pfade von Windows nach Unix und umgekehrt zu übersetzen, z.B..

$ cygpath -u 'c:\Users\Andrew\Documents\svn'
/cygdrive/c/Users/Andrew/Documents/svn

eine cygpath --help für weitere Informationen.

Sie wollen also wahrscheinlich einen Wrapper für GDB schreiben, der alle Windows-spezifischen Pfade in Unix-Pfade übersetzt und dann den echten GDB aufruft.

0voto

Carl Seleborg Punkte 12935

Das Problem verschwand nach dem Upgrade auf Eclipse Ganymede.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X