gpt4 book ai didi

c - GDB 找不到源

转载 作者:太空狗 更新时间:2023-10-29 17:18:25 26 4
gpt4 key购买 nike

我使用这个启动 gdb(工作目录是/home/leon/Develop/tests/atomic/):

 gdb ./bin/lin64/httpress

然后我添加带有源文件的目录,它理解我:

Source directories searched: /home/leon/Develop/tests/atomic/third/http_parser:/home/leon/Develop/tests/atomic/src/tools:$cdir:$cwd

当我运行二进制文件时,gdb 无法识别源代码中发生段错误的行。如何设置gdb的源文件?

程序是用gcc编译的:

gcc -D_AMD64_ -D_LIN_ -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -m64 -march=core2 -O2   -Wall -I. -I src/include -I src/lib/zlib/ -I src/lib/otg -I third/openssl/include/ -I src/lib/otg/Tools/HostTime/Interfaces/ -I src/lib/otg/Tools/OpenToolsGate/Guest/Interfaces/ -I src/lib/otg/Tools/OpenToolsGate/Guest/Cross -I src/lib/otg/Tools/OpenToolsGate/Common/Interfaces/ -o bin/lin64/httpress -std=c99  -lpthread -lev -lgnutls -O2 -s -DWITH_SSL -Wno-strict-aliasing \
-I /usr/include/libev src/tools/httpress.c -I third/http_parser/ third/http_parser/http_parser.c

好的,我做了一些改变:

gcc -g -ggdb -D_AMD64_ -D_LIN_ -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -m64 -march=core2 -Wall -I. -I src/include -I src/lib/zlib/ -I src/lib/otg -I third/openssl/include/ -I src/lib/otg/Tools/HostTime/Interfaces/ -I src/lib/otg/Tools/OpenToolsGate/Guest/Interfaces/ -I src/lib/otg/Tools/OpenToolsGate/Guest/Cross -I src/lib/otg/Tools/OpenToolsGate/Common/Interfaces/ -o bin/lin64/httpress -std=c99  -lpthread -lev -lgnutls -s -DWITH_SSL -Wno-strict-aliasing \
-I /usr/include/libev src/tools/httpress.c -I third/http_parser/ third/http_parser/http_parser.c

在这种情况下,它仍然无法在二进制文件中找到符号。但是如果我从 gcc 调用中删除 -s 选项。它写道:

Reading symbols from /home/leon/Develop/tests/atomic/bin/lin64/httpress...done.

但调试器仍然这样说:

(gdb) info source
No current source file.

...在我为他指出源目录之后。

最佳答案

您在 gcc 调用中错过了包含调试信息的 -g

另一方面,我建议将优化级别从 -O2 降低到 -O0 并且只使用一次(包括 gcc 调用有 2 个 -O2)。

除此之外,您可以使用 dir 命令将目录添加到 gdb 的源路径:Source_Path .但这仅在您在 httpress

中提供了适当的调试信息时才有效

关于c - GDB 找不到源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20096606/

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