要检测堆栈溢出,请使用 -xcheck=stkovf 编译器选项编译 C、C++ 或 Fortran 程序。语法如下所示:
-xcheck=stkovf[:detect | :diagnose]
如果指定了 -xheck=stkovf:detect,则通过执行通常与错误关联的信号处理程序来处理检测到的堆栈溢出错误。
如果指定了 -xcheck=stkovf:diagnose,则通过捕获关联的信号来处理检测到的堆栈溢出错误并通过调用 stack_violation(3C) 来诊断错误。如果诊断到堆栈溢出错误,则会向 stderr 输出错误消息。如果只指定了 -xcheck=stkovf,这是缺省行为。
有关 -xcheck=stkovf 编译器选项的更多信息,请参见 cc(1)、CC(1) 或 f95(1) 手册页。