Как получить номера строк для GDB? - PullRequest
2 голосов
/ 28 декабря 2011

Есть ли конкретный способ сделать это? Я говорю в общих целях. Например, когда я пытаюсь запустить свою программу в 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

безуспешно; он отказывается отображать что-либо.

Вот мой 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)

Ответы [ 2 ]

6 голосов
/ 28 декабря 2011

Вы должны включить символы отладки при компиляции. Например, если вы используете gcc, добавьте флаг -ggdb.

4 голосов
/ 28 декабря 2011

Вам необходимо скомпилировать с включенными опциями отладочных символов gcc -g и убедиться, что вы не удалите свой исполняемый файл. Подробнее в этой ссылке .

----------------------------------------------- --edit -------------------------------------------

Ваш Makefile выглядит не очень хорошо, почему бы вам не использовать шаблонный файл Makefiles . Вы можете найти его здесь , у меня хорошо работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...