Oracle Solaris Studio 12.2:C++ 用户指南

A.2.30.1 交互

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

如果使用该选项且优化级别为 -xO4 或更高,编译器会为完全优化提供尽可能多的符号信息。如果使用 -g 且不指定优化级别,将禁用函数调用的内联。(如果随 -g 指定优化级别,会启用内联。)

指定此选项时,除非还指定 -O-xO,否则会自动指定 +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–xsanalyzer(1) 手册页、er_src(1) 手册页、ld(1) 手册页、《使用 dbx 调试程序》(介绍了有关 stabs 的详细信息)和《程序性能分析工具》。