如果执行中出现严重错误,将发出栈追踪。
当程序生成某些信号时,-traceback 选项会导致可执行文件向 stderr 发出栈跟踪、转储内核并退出。如果多个线程都生成一个信号,则只为第一个生成栈跟踪。
要使用回溯,请在链接时将 -traceback 选项添加到编译器命令行中。编译时也接受该选项,除非生成可执行二进制文件,否则将忽略此选项。使用 -traceback 和 -G 创建共享库是个错误。
表 B–11 -traceback 选项
选项 |
含义 |
---|---|
common |
指定在出现下列任一常见信号时发出栈跟踪:sigill、sigfpe、sigbus、sigsegv 或 sigabrt。 |
signals_list |
指定应生成栈跟踪的信号名称的逗号分隔列表,采用小写形式。可以捕捉以下信号(导致生成核心文件的信号):sigquit、sigill、sigtrap、sigabrt、sigemt、sigfpe、sigbus、 sigsegv、sigsys、sigxcpu、sigxfsz。 在上述任一信号前加上 no% 可以禁用信号缓存。 例如:-traceback=sigsegv,sigfpe 将在 sigsegv 或 sigfpe 出现时生成栈跟踪和核心转储。 |
%none 或 none |
禁用回溯 |
如果不指定该选项,则缺省值为 -traceback=%none
只使用 -traceback 而不使用 = 信号表示 -traceback=common
注意:如果不需要核心转储,用户可以使用以下方法将 coredumpsize 限制设置为零:
% limit coredumpsize 0 |
-traceback 选项对运行时性能没有影响。