GDB。在程序集makefile中没有标记-g

时间:2012-02-16 20:11:43

标签: c++ gdb g++

我想用gdb调试我的应用程序。我用makefile构建项目,在这里你可以看到项目构建的结果:

编译规则

%.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 /。 SRC /对象

     

g ++ -o src /./ main.o -c ../../src/./main.cpp -Wall -MD -pipe -Wno-deprecated -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:离开目录`{project_name} / obj / debug'

我删除了不必要的冗余信息。 在那里你可以看到很多关于构建的信息,你也可以在源文件编译时看到flag -g。 在那之后,我想调试,我看到

  

(gdb)文件myApp_debuq

     

从{project} / bin / myApp_debuq中读取符号...(未找到调试符号)...完成。

     

(gdb)列表

     

未加载符号表。使用“file”命令。

我怎么知道,这条消息告诉我没有调试信息。

为什么?

1 个答案:

答案 0 :(得分:3)

不要从可执行文件中删除调试符号!从链接命令中删除-s