Sun Studio 12:Fortran 编程指南

5.2 特殊编译器选项

有些编译器选项对于调试很有用。它们可以用来检查下标、发现未声明的变量、显示编译链接过程中的各个阶段、显示软件的版本,等等。

Solaris 链接程序还具有其他调试辅助选项。请参见 ld(1),或在 shell 提示符下运行命令 ld –Dhelp 来查看联机文档。

5.2.1 下标边界 (–C)

如果使用 -C 编译,编辑器在运行时会增加对每个数组下标上的跨界引用以及数组一致性的检查。此操作有助于捕获某些会引起段故障的情况。

示例:超出范围的索引:


demo% cat range.f
      REAL a(10,10)
      k = 11
      a(k,2) = 1.0
      END
demo% f95 -o range range.f
demo% range

 ******  FORTRAN RUN-TIME SYSTEM  ******
Subscript out of range. Location: line 3 column 9 of ’range.f’
Subscript number 1 has value 11 in array ’A’
Abort
demo%

5.2.2 未声明的变量类型 (–u)

-u 选项检查任何未声明的变量

-u 选项会使所有变量被初始标识为未声明,这样,所有未用类型语句或 IMPLICIT 语句显式声明的变量都会被加上错误标志。-u 标志对于发现类型不匹配的变量很有用。如果设置了 -u,在显式声明之前会将所有变量视为未声明。一旦使用了未声明变量,便会出现错误消息。

5.2.3 编译器版本检查 (–V)

–V 选项可将编译器每一阶段的名称和版本 ID 显示出来。该选项可用于跟踪不明错误消息的起源、报告编译器故障以及验证所安装编译器补丁程序的级别。


demo% f95 -V wh.f
f95: Sun Fortran 95 7.0 DEV 2002/01/30
f90comp: Sun Fortran 95 7.0 DEV 2002/01/30
f90comp: 9 SOURCE LINES
f90comp: 0 ERRORS, 0 WARNINGS, 0 OTHER MESSAGES, 0 ANSI
ld: Solaris Link Editors: 5.8-1.272