如果执行过程中发生严重错误,则发出栈跟踪。
当程序生成某些信号时,-traceback 选项将使可执行文件向 stderr 发出栈跟踪,转储核心,然后退出。如果有多个线程生成信号,将仅为第一个线程生成栈跟踪。
要使用回溯,应在链接时将 -traceback 选项添加到编译器命令行。编译时也接受该选项,但除非生成二进制可执行文件,否则将忽略该选项。将 -traceback 与 -G 结合使用来创建共享库的做法是错误的。
表 3–9 -traceback 选项
选项 |
含义 |
---|---|
common |
指定在出现以下常用信号集中的某个信号时发出栈跟踪:sigill、sigfpe、sigbus、sigsegv 或 sigabrt。 |
signals_list |
以小写形式指定生成栈跟踪的信号名称的逗号分隔列表。可以捕捉以下信号(导致生成核心转储文件的信号):sigquit、sigill、sigtrap、sigabrt、sigemt、sigfpe、sigbus、 sigsegv、sigsys、sigxcpu、sigxfsz。 可以在任何这些信号的后面加上 no%,以禁止捕捉该信号。 例如:如果发生 sigsegv 或 sigfpe,-traceback=sigsegv,sigfpe 将生成栈跟踪和核心转储文件。 |
%none 或 none |
禁用回溯 |
如果不指定此选项,缺省值为 -traceback=%none
单独的 -traceback(无值)表示 -traceback=common
注意:如果不希望生成核心转储,用户可以使用以下命令将其大小设置为零:
% limit coredumpsize 0 |
-traceback 选项不影响运行时性能。