Sun Studio 12:C++ 用户指南

A.2.31 –g

生成附加的符号表信息,以供使用 dbx(1) 或调试器进行调试以及使用性能分析器 analyzer(1) 进行分析。

指示编译器和链接程序准备进行调试和性能分析的文件或程序。

其任务包括:

A.2.31.1 交互

如果将此选项与 –xOlevel(或其等价选项,如 - O)一起使用,将会获得一些特定的调试信息。有关更多信息,请参见 A.2.150 -xOlevel

如果使用该选项且优化级别为 -xO4 或更高,编译器会为完全优化提供尽可能多的符号信息。

指定了该选项时,会自动指定 +d 选项。


注 –

在以前的发行版中,此选项强制编译器在缺省情况下使用增量链接程序 (ild),而不使用用于编译器的仅链接调用的链接程序 (ld)。也就是说,在使用 -g 的情况下,编译器的缺省行为是每当使用编译器链接目标文件时就自动调用 ild 而不是 ld,除非在命令行上指定了 -G 或源文件。现在已不再是这种情况。增量链接程序不再可用。


要使用性能分析器的完整功能,请使用 -g 选项进行编译。虽然某些性能分析功能不需要使用 -g,但必须使用 -g 进行编译,以便查看注释的源代码、部分函数级别信息以及编译器注释消息。有关更多信息,请参阅 analyzer(1) 手册页和《程序性能分析工具》中的“编译您的程序以进行数据收集和分析”。

使用 -g 生成的注释消息描述编译器在编译程序时进行的优化和变换。使用 er_src(1) 命令来显示与源代码交叉的消息。

警告

如果在不同的步骤中编译和链接程序,则在一个步骤中使用 -g 选项而在另一个步骤中不使用该选项不会影响程序的正确性,但会影响调试程序的能力。没有使用 -g(或 -g0)编译但使用 -g(或 -g0)链接的任何模块将不能正常进行调试。请注意,通常必须使用 -g 选项(或 -g0 选项)编译包含函数 main 的模块才能对其进行调试。

另请参见

+d、– g0、– xs、analyzer(1) 手册页、er_src(1) 手册页、ld(1) 手册页、《使用 dbx 调试程序》(介绍了有关 stabs 的详细信息)和《程序性能分析工具》。