wake-up-neo.net

Fehler bei der Fehlerbehebung "Eclipse CDT"

Ich habe ein Projekt mit einer gemeinsam genutzten Bibliothek (dynamisch geladen) und ich versuche, es zu debuggen. Ich erhalte folgende Fehlermeldung:

No source file named /home/username/Code/path/to/project/MyFile.cpp.

Nachdem ich andere Threads durchsucht hatte, habe ich sichergestellt, dass ich mit -g kompiliere und dass sich die entsprechenden Ordner auf der Registerkarte Quellpfade der Debug-Konfigurationen befinden. Das Merkwürdige ist, dass es den korrekten absoluten Pfad angibt: Die Datei, auf die es verweist, ist vorhanden, daher verstehe ich nicht, warum es nicht denkt, dass es dort ist.

Weiß jemand, was man dagegen tun soll?

18
OrbitalDan

Ich bin gerade auf das gleiche Problem gestoßen, obwohl sich meine Haltepunkte in der ausführbaren Datei selbst befanden, nicht in einer gemeinsam genutzten Bibliothek. Um dieses Problem zu lösen, musste ich die "Debug-Konfiguration" öffnen, meine Debug-Konfiguration auswählen und die folgenden Einstellungen anpassen:

  • Am unteren Rand befindet sich ein Link "Select other ...", um den Starter für das Erstellen von Prozessen auszuwählen. Klicken Sie auf den Link. Aktivieren Sie das Kontrollkästchen "Konfigurationsspezifische Einstellungen verwenden". Wählen Sie "Standard Create Process Launcher" und drücken Sie "Ok".
  • Gehen Sie auf die Registerkarte "Debugger" und wählen Sie oben auf der Registerkarte "Debugger: gdb/mi" . Was keinen Unterschied machen kann/darf: Auf derselben Registerkarte gibt es auch ein Kontrollkästchen "Vollständigen Dateipfad verwenden, um Haltepunkte festzulegen" - Ich habe damit gespielt, aber es scheint keinen Einfluss auf das Problem zu haben, das wir beobachten (offensichtlich unsere Quellpfade) sind schon volle Pfade).

Für Haltepunkte in gemeinsam genutzten Bibliotheken benötigen Sie möglicherweise zusätzliche Informationen (insbesondere zu zurückgestellte Haltepunkte ) von Debuggen mit Eclipse cdt und gdb und Warum ignoriert Eclipse cdt Haltepunkte .

Hinweis: Dies bezieht sich auf Eclipse Kepler (4.3) und gdb 7.4.

23
Andreas Fester

Ich hatte das gleiche Problem, aber in meinem Fall war es meine Schuld. Einige meiner Projekte wurden auf Release configuration gesetzt und der Debugger konnte die Quelldateiinformationen natürlich nicht finden.

2
ahmkara

Ich hatte das gleiche Problem. Ich konnte keinen Haltepunkt in einer gemeinsam genutzten Bibliotheksdatei (.so) festlegen, die an einem anderen Ort als mein Programm kompiliert wurde. Um das zu beheben:

  1. Wechseln Sie zur Registerkarte Debug Configuration, Source
  2. Fügen Sie ein Kompilierungsverzeichnis hinzu (ich habe den Ort des Haupt-Makefiles verwendet, der alle Prozesse kompiliert, nicht den Ort, an dem sich das Makefile für diesen Prozess befindet).
  3. klicken Sie auch auf "Unterverzeichnisse werden auch zum Kompilieren verwendet" (mein Subprozess-Makefile wird in einem Unterverzeichnis des Hauptverzeichnisses kompiliert.)

Ich habe nicht herausgefunden, wie ich diese Änderung für alle zukünftigen und früheren Debug-Konfigurationen vornehmen kann, so dass ich dieses Verzeichnis nicht jedes Mal hinzufügen muss, aber ich werde später versuchen, es zu aktualisieren, wenn ich das herausfinde.

1
Geronimo

Dies kann passieren, wenn Sie sowohl cygwin als auch mingw (oder eine andere Variante) haben. Wenn Sie gcc von cygwin verwenden, um die Quelle zu kompilieren, haben Sie den cygwin-Pfad in der ausführbaren Datei. Wenn der Debugger von mingw stammt, kann gdb den cygwin-Pfad nicht interpretieren. Der einfachste Weg, dieses Problem zu lösen, besteht darin, unter Ausführen -> Debug-Konfigurationen -> Debugger den vollständigen Pfad zu cygwin gdb (C:\cygwin64\bin\gdb.exe) festzulegen. Das hat das Problem für mich gelöst.

0
millibit

Ich habe den Kommentar von @Andreas Fester auf die Registerkarte "Debugger" in den Debug-Konfigurationseinstellungen gefolgt, aber "Debugger: gdb/mi" nicht gefunden. In der Registerkarte "Quelle" wurden alle Elemente entfernt und "Absoluter Dateipfad" durch Klicken auf "Hinzufügen" hinzugefügt. "" auf der rechten Seite des Fensters. Das hat mir bei diesem Problem geholfen

0
user3865471

Ich hatte das gleiche Problem, aber meine Lösung war anders. Öffnen Sie die Verzeichnisse "debug/src" + "release/src" und stellen Sie sicher, dass keine [Dateinamen] .d-Dateien vorhanden sind, die den Namen der Quelldateien enthalten, die ihren Namen geändert haben oder nicht mehr vorhanden sind. Ich hatte eins, löschte es und seitdem keine Fehler mehr.

Ich würde daher, zumindest in meinem Fall, davon ausgehen, dass die Fehler von Objekten verursacht werden, die nicht in den Anwendungsbereich fallen.

0
MRRW_FR