数据库。汇编 makefile 中的标志 -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-已弃用
编译和构建
mkdir -p src/. src/对象
g++ -o src/./main.o -c ../../src/./main.cpp -Wall -MD -pipe -Wno-deprecated -O0 -g -DEBUG -I ../。 ./包括
g++ -o src/Object/Object.o -c ../../src/Object/Object.cpp -Wall -MD -pipe -Wno-deprecated -O0 -g -DEBUG -I ../。 ./包括
g++ -o ../../bin/myApp_debuq src/./main.o src/Object/Object.o -s -pipe
make:离开目录“{project_name}/obj/debug”
我删除了不必要和多余的信息。 在那里您可以看到很多有关构建的信息,并且在编译源文件时您还可以看到标志 -g 。 之后我想调试,我看到
(gdb)文件 myApp_debuq
从 {project}/bin/myApp_debuq 读取符号...(未找到调试符号)...完成。
(gdb)列表
未加载符号表。使用“文件”命令。
我怎么知道,这条消息告诉我没有调试信息。
为什么 ?
I'm want to debugging my application with gdb. I build project with makefile and here you can see the results of the project build:
Rule of compile
%.o : %.cpp
g++ -o $@ -c lt; $(COMPILE_FLAGS) $(build_flags) $(addprefix -I , $(INCLUDE_DIRS))
Where
build_flags := -O0 -g -DEBUG
COMPILE_FLAGS := -Wall -MD -pipe -Wno-deprecated
Compilation and building
mkdir -p src/. src/Object
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: Leaving directory `{project_name}/obj/debug'
I was removed the unnecessary and redundant information.
There you can see a lot of information about building and also you can see flag -g when source file are compiling.
After there I want to debug and I see
(gdb) file myApp_debuq
Reading symbols from {project}/bin/myApp_debuq...(no debugging symbols found)...done.
(gdb) list
No symbol table is loaded. Use the "file" command.
How I know, this message telling me that there is no debug information.
Why ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不要从可执行文件中删除调试符号!从链接命令中删除
-s
。Don't strip the debug symbols from the executable! Remove the
-s
from the link command.