2011-12-28 5 views
1

具体的な方法はありますか?私は一般的な目的で話しています。私は、例えば、GDBに私のプログラムを起動しようとすると、私はこの通知を得る:GDBの行番号を取得するには?

Reading symbols from /home/amsterdam/Code/c++/opengl_03/bin/opengl_03...(no debugging symbols found)...done. 

それは私がこれのために特定のファイルを見つける必要がある場合、私は思ってしまいますか?

更新

注:なし成功し

nm --debug-sym <your_executable> | grep debug

;:私はすでに、次のコマンドを試してみましたそれは何も表示することを拒否します。

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) 
+0

多分あなたの役に立つ情報があります:http://stackoverflow.com/questions/3151779/ –

答えて

4

はあなたがコンパイル時にデバッグシンボルを含める必要があります。

は、ここに私のMakefileです。たとえば、gccを使用している場合は、フラグ-ggdbを追加します。

+0

何らかの理由で、それを私の '$(CFLAGS)'変数に含めるとうまくいかないようです。何が問題なのか考えていますか? – zeboidlund

+0

働かないということはどういう意味ですか? '-g'フラグを使ってみてください。 – DrYap

+0

すでにこれを使っています。どちらもうまくいきません。ここでは、メイクファイルを1秒で投稿します。 – zeboidlund

3

オプションを含むデバッグシンボルgcc -gを使用してコンパイルする必要があります。また、実行ファイルを削除しないでください。このlinkの詳細については、こちらをご覧ください。

---------------------------------------------- ---編集-------------------------------------------

Makefileがうまく見えません。 boilerplate Makefilesを使用してください。あなたはそれを見つけることができますhere、私のためにうまく動作します。