Keine Quellcode-Datei mit dem Namen main.c. gdb Haltepunkt festlegen
Ich bin mit gdb zum Debuggen von C-source-Projekt code. Ich kompilieren wie folgt:
./configure --enable-debug CFLAGS="-g -o0"
make --debug=a
Möchte ich Debuggen stoppen an der jeweiligen Datei. Also wenn ich den break point mit
(gdb) break main.c:672
Er sagt:
No source file named main.c.
Selbst wenn ich den pass spezifische name der Funktion (in main.c-Datei) zu brechen . er sagt: eine solche Funktion nicht definiert.
Mein Aktuelles Verzeichnis ist das wichtigste.c-Datei. Ich bin mit Cygwin unter Windows. Wenn ich den break point mit
(gdb) break main
Es setze einen Haltepunkt auf eine main-Funktion der Cygwin-Datei, nicht in meinem source-code.
-
wie kann ich das beheben meinem ersten problem?
-
einfach nur neugierig, wie um zu vermeiden, zweites problem, wenn es die gleiche Funktion Namen in der Cygwin-Dateien und meinem Quellcode?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie die Kompilierung mit
-g
und noch nicht in der Lage, um einen Haltepunkt zu setzen, versuchen Sie, hinzufügen vonraise(SIGTRAP)
in Ihremmain()
führen Sie den Prozess in gdb, dann legen Sie den Haltepunkt, die Sie wollen wieder nach trifft es dieSIGTRAP
.Beim kompilieren Ihrer
.c
- Datei, stellen Sie sicher, dass Sie verwenden:Suche nach Last debugging-Symbole getan oder nicht?
Wenn nicht:
finden Sie das symbol Datei im obj-Verzeichnis
Entscheidend ist gcc den parameter -g beim kompilieren.
Alles andere ist zweitrangig.
Sehen breakpoints im GDB
Ich auch gestoßen mit ähnlichem problem früher. Ich habe gerade gelöscht .Metadaten Ordner und importiert das jeweilige Projekt wieder und die Arbeit auch.
Immer wenn Sie GDB verwenden, geben Sie Folgendes in die Befehlszeile
Nun geben
dann geben Sie den Befehl break