使用GCC启用共享库中的调试符号

16
我正在使用 gcc 创建一个共享库,怀疑其中可能存在内存泄漏。为了调试,我需要在创建共享库时启用调试符号。
构建时,我使用的是 gcc -g ...-g 用于启用调试信息)。
但是,无论是使用 -g 还是不使用 -g,库(*.so 文件)的大小都没有变化。 此外,像 VALGRIND 等工具也没有提供有用的信息。
请问有谁能指出我的错误?

1
你能否发布你的Makefile相关部分或其他正在使用的CFLAGS? - Tim Post
1
我在 CFLAGS 中添加了 -g,现在它可以工作了,谢谢!!! - Alphaneo
1个回答

20

在所有步骤中你需要使用-g(编译源代码和链接)。


4
确保在链接时不要指定-s选项,因为这会去除调试信息。 - Manuel
2
-g 标志对于 GNU 链接器并不是必需的,因为 ld 手册中说:“-g 被忽略。提供与其他工具的兼容性。” 它仅在编译阶段需要。 - aleixrocks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接