段错误生成core文件的方法

当应用出现段错误,生成core文件的方法:

1.打开kernel config:CONFIG_ELF_CORE;CONFIG_COREDUMP (默认已经打开)

2.ulimit -c unlimited 段错误出现时,产生coredump文件,并且文件大小不限制(或者可以限制足够的size)。

echo "/home/app/core.%e.%p" > /proc/sys/kernel/core_pattern 指定段错误的时候,core在哪个目录打印。%e进程名,%p进程号。 其他还有%t code dump的时间,%s 导致code dump的信号。

3.可以在应用里捕获SIGSEGV信号,然后用backtrace()函数把堆栈信息打印出来。编译的时候需要加编译选项: -rdynamic -funwind-tables -ffunction-sections