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

A.2.94 -traceback[={ %none|common|signals_list}]

如果执行中出现严重错误,将发出栈跟踪。

当程序生成某些信号时,-traceback 选项会导致可执行文件向 stderr 发出栈跟踪、转储内核并退出。如果多个线程都生成一个信号,则只为第一个生成栈跟踪。

要使用回溯,请在链接时将 -traceback 选项添加到编译器命令行中。编译时也接受该选项,除非生成可执行二进制文件,否则将忽略此选项。使用 -traceback -G 创建共享库是个错误。

表 A–21 -traceback 选项

选项 

含义 

common

指定在出现下列任一常见信号时发出栈跟踪:sigillsigfpesigbussigsegvsigabrt

signals_list

指定应生成栈跟踪的信号名称的逗号分隔列表,采用小写形式。可以捕捉以下信号(导致生成核心文件的信号):sigquitsigillsigtrapsigabrtsigemtsigfpesigbussigsegvsigsyssigxcpusigxfsz

在上述任一信号前加上 no% 可以禁用信号缓存。

例如:-traceback=sigsegv,sigfpe 将在 sigsegvsigfpe 出现时生成栈跟踪和核心转储。

%nonenone

禁用回溯 

如果不指定该选项,则缺省值为 -traceback=%none

只使用 -traceback 而不使用 = 信号表示 -traceback=common

注意:如果不需要核心转储,用户可以使用以下方法将 coredumpsize 限制设置为零:


% limit coredumpsize 0            

-traceback 选项对运行时性能没有影响。