Keine Quelldatei namens main.c. gdb Haltepunkteinstellung

8

Ich verwende gdb zum Debuggen von C-Projektquellcode. Ich kompiliere wie folgt:

%Vor%

Ich möchte das Debuggen bei einer bestimmten Datei beenden. Also wenn ich den Breakpoint mit

einstelle %Vor%

Es sagt:

%Vor%

Auch wenn ich einen bestimmten Funktionsnamen (in der main.c-Datei) übergebe, um zu brechen. es sagt: solche Funktion nicht definiert.

Mein aktuelles Verzeichnis hat diese main.c-Datei. Ich benutze Cygwin unter Windows. Wenn ich einen Unterbrechungspunkt mit

festlege %Vor%

Es hat einen Unterbrechungspunkt bei einer Hauptfunktion der Cygwin-Datei gesetzt, nicht in meinem Quellcode.

  1. Wie kann ich mein erstes Problem beheben?

  2. nur neugierig, wie zweites Problem zu vermeiden, wenn es den gleichen Funktionsnamen in Cygwin-Dateien und meinem Quellcode gibt?

arslan 03.10.2013, 05:44
quelle

5 Antworten

2

Wenn Sie mit -g kompilieren und immer noch keinen Haltepunkt setzen können, fügen Sie in Ihrem raise(SIGTRAP) main() hinzu, führen Sie den Prozess in gdb aus und setzen Sie den gewünschten Haltepunkt erneut, nachdem er den% -Zeichen erreicht hat. co_de%.

    
wilywampa 22.09.2014, 17:54
quelle
5

Wenn Sie Ihre .c -Datei kompilieren, stellen Sie sicher, dass Sie Folgendes verwenden:

%Vor%

Suchen Sie nach Load Debugging-Symbolen oder nicht?

Wenn nicht:

%Vor%

Sie finden die Symboldatei im Verzeichnis obj

    
Sohil Omer 03.10.2013 05:52
quelle
2

Entscheidend ist gcc-Parameter -g während der Kompilierung.

Alles andere ist zweitrangig.

Siehe Haltepunkte in GDB

    
dyomas 28.04.2014 17:36
quelle
2

Ich stieß auch früher auf ein ähnliches Problem. Ich habe gerade den Ordner .metadata gelöscht und das betreffende Projekt erneut importiert, und das funktioniert gut.

    
Kulwant Bhambra 10.07.2016 09:09
quelle
1

Wenn Sie GDB verwenden müssen, geben Sie Folgendes in die Befehlszeile ein

%Vor%

Geben Sie nun

ein %Vor%

und geben Sie dann den Befehl break

ein     
user2430771 03.10.2013 06:04
quelle

Tags und Links