linux下程序运行几天莫名其妙宕机了,不能还原现场,找到宕机原因就很无语了。
一个解决办法是使用core文件,但是对于大型服务器文件,动辄几百M的core文件是在有点伤不起,于是想到程序宕机时自动打印调用堆栈。简单实用。
废话不多说,直接上方案:
方案1:使用gdb指令列表文件启动程序并监控之
启动指令 gdb -x gdb_start.ini
以下是gdb_start.ini文件内容:
file
MyApplication
set pagination
off
shell rm
./logs/gdb_crash.log
set logging file
./logs/gdb_crash.log
set logging
on
handle SIG32
nostop noprint
handle SIGPIPE
nostop noprint
handle SIGSEGV
stop
handle SIGFPE
stop
handle SIGILL
stop
handle SIGABRT
stop
handle SIGSYS
stop
r 6660
print "crash
time:"
shell date
>> ./logs/gdb_crash.log
print "crash
frame:"<