gpt4 book ai didi

c++ - Gdb。程序集生成文件中的标志 -g 不起作用

转载 作者:行者123 更新时间:2023-11-30 03:03:31 24 4
gpt4 key购买 nike

我想用 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/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'

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

(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.

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

为什么?

最佳答案

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

关于c++ - Gdb。程序集生成文件中的标志 -g 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9318363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com