Gdb. Не работает флаг -g в сборочном файле сборки - PullRequest
1 голос
/ 17 февраля 2012

Я хочу отладить свое приложение с помощью gdb. Я строю проект с помощью make-файла, и здесь вы можете увидеть результаты сборки проекта:

Правило компиляции

%.o : %.cpp
g++ -o $@ -c $< $(COMPILE_FLAGS) $(build_flags) $(addprefix -I , $(INCLUDE_DIRS))

Где

build_flags: = -O0 -g -DEBUG

COMPILE_FLAGS: = -Wall -MD -pipe -Wno-deprecated

Сборник и сборка

mkdir -p src /. ЦСИ / Object

g ++ -o src /./ main.o -c ../../src/./main.cpp -Wall -MD -pipe -Wno-не рекомендуется -O0 -g -DEBUG -I ../. ./include

g ++ -o src / Object / Object.o -c ../../src/Object/Object.cpp -Wall -MD -pipe -Wno-deprecated -O0 -g -DEBUG -I ../. ./include

g ++ -o ../../bin/myApp_debuq src /./ main.o src / Object / Object.o -s -pipe
make: выход из каталога `{имя_проекта} / obj / debug '

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

(gdb) файл myApp_debuq

Чтение символов из {project} / bin / myApp_debuq ... (символы отладки не найдены) ... выполнено.

(gdb) список

Таблица символов не загружена. Используйте команду "file".

Насколько я знаю, это сообщение о том, что отладочной информации нет.

Почему?

1 Ответ

3 голосов
/ 17 февраля 2012

Не удаляйте символы отладки из исполняемого файла!Удалите -s из команды ссылки.

...