Wie man die Zeilennummern für GDB?
Gibt es einen bestimmten Weg, dies zu tun? Ich spreche im Allgemeinen Zwecken. Wenn ich versuche zu starten, mein Programm in GDB, zum Beispiel, bekomme ich diese Meldung:
Reading symbols from /home/amsterdam/Code/c++/opengl_03/bin/opengl_03...(no debugging symbols found)...done.
Es macht mich Frage mich, wenn ich eine bestimmte Datei?
Update
Hinweis: ich habe bereits versucht den folgenden Befehl ein:
nm --debug-sym <your_executable> | grep debug
ohne Erfolg; er sich weigert, zeigen alles.
Hier ist mein Makefile:
BIN = bin/
OBJ = obj/
TARGET = opengl_03
DEPS = main.o displayinit.o initializer.o algorithms.o matrix3f.o window.o vertex3.o
CC = g++
CFLAGS = -g -ggdb
LIBS = -lglut -lGLEW -lGL
INCLUDEPATH = -L/usr/include/ -L/usr/lib/ -L/usr/lib/x86_64-linux-gnu/
$(TARGET) : $(DEPS)
$(CC) $(CFLAGS) -o $(BIN)$(TARGET) $(DEPS) $(LIBS) $(INCLUDEPATH)
displayinit.o : displayinit.cpp displayinit.h
$(CC) $(CFLAGS) -c displayinit.cpp $(LIBS) $(INCLUDEPATH) #&& mv displayinit.o $(OBJ)displayinit.o
initializer.o : initializer.cpp initializer.h
$(CC) $(CFLAGS) -c initializer.cpp $(OBJ) $(LIBS) $(INCLUDEPATH)
algorithms.o : algorithms.cpp algorithms.h
$(CC) $(CFLAGS) -c algorithms.cpp $(OBJ) $(LIBS) $(INCLUDEPATH)
matrix3f.o : matrix3f.cpp matrix3f.h
$(CC) $(CFLAGS) -c matrix3f.cpp $(OBJ) $(LIBS) $(INCLUDEPATH)
vertex3.o : vertex3.cpp vertex3.h
$(CC) $(CFLAGS) -c vertex3.cpp $(OBJ) $(LIBS) $(INCLUDEPATH)
window.o : window.cpp window.h
$(CC) $(CFLAGS) $(LIBS) $(INCLUDEPATH) -c window.cpp $(OBJ)
main.o : main.cpp
$(CC) $(CFLAGS) $(LIBS) $(INCLUDEPATH) -c main.cpp $(OBJ)
Vielleicht gibt es einige nützliche infos für dich hier: stackoverflow.com/questions/3151779
InformationsquelleAutor zeboidlund | 2011-12-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die debugging-Symbole, wenn Sie kompilieren. Zum Beispiel, wenn Sie gcc verwenden, fügen Sie das flag
-ggdb
.$(CFLAGS)
variable, es scheint nicht zu funktionieren. Haben Sie eine Idee, was das problem sein könnte?Was meinst du damit, nicht zu arbeiten? Versuchen Sie es einfach mit der
-g
FlaggeBereits verwendet haben, dass. Es funktioniert auch nicht. Hier poste ich meine makefile in eine Sek.
ok, es ist schon gebucht.
Man sollte Sie nur verwenden Sie eine der
-g
oder-ggdb
(letzteres meint den Gebrauch von gdb Symbole) auch nicht verwenden, werden die flags in der linker-Bühne. Außer, dass ich sehen kein problem. Welchen Befehl verwenden Sie, wenn Sie anrufen gdb?InformationsquelleAutor DrYap
Müssen Sie zum kompilieren mit debug-Symbole enthalten
gcc -g
option und stellen Sie sicher, dass Sie nicht Streifen Ihre ausführbare Datei. Mehr details in diesem link.-------------------------------------------------Bearbeiten-------------------------------------------
Dein Makefile sieht nicht gut aus, warum gehst du nicht verwenden
boilerplate Makefiles. Sie finden es hier, funktioniert gut für mich.
InformationsquelleAutor Kamath