15.3. 使用 GCC 启用 C 和 C++ 应用程序
由于调试信息较大,因此默认情况下,不会包含在可执行文件中。要为您的 C 和 C++ 应用程序进行调试,您必须明确指示编译器创建调试信息。
使用 GCC 启用调试信息
要在编译和链接代码时使用 GCC 创建调试信息,请使用 -g
选项:
$ gcc ... -g ...
-
由编译器和链接器执行的优化可能会导致可执行代码难以与原始源代码相关:变量可以被优化,取消滚动,将操作合并到周围的代码中。这会影响调试。要改进调试体验,请考虑使用
-Og
选项设置优化。但是,更改优化级别会更改可执行代码,并可能会更改实际行为,以便删除一些程序错误。 -
f
compare-debug
GCC 选项测试 GCC 使用调试信息编译的代码,无需调试信息。如果生成的两个二进制文件相同,则测试将通过。此测试可确保可执行代码不受任何调试选项的影响,进一步确保调试代码中没有隐藏的错误。请注意,使用-fcompare-debug
选项可显著增加编译时间。有关这个选项的详情,请查看 GCC 手册页。
其它资源
- 第 20.1 节 “使用调试信息启用调试”
- 使用 GNU Compiler Collection(GCC)- 3.10 选项用于调试您的程序
- 使用 GDB 进行调试 — 18.3 Debugging Information in Separate Files
GCC 手册页:
$ man gcc