日期:2014-05-16  浏览次数:20655 次

为什么程序出错,不报segment fault等类似错误
公司的一个服务器程序,对SIGINT和SIGTERM作了信号捕获。
在本地虚拟机运行,出现这两个错误时,会打印log,出现其他错误时,能在屏幕上显示段错误什么的(只有几句话)
放到云服务器上,运行的时候是由另外一个程序启动的,启动脚本为 ./gs >gs.out 2>&1 &
有的时候出错,能看到:
*** glibc detected *** ./gameserver: free(): corrupted unsorted chunks: 0x0b0be530 ***
======= Backtrace: =========
等等很长的信息,有的时候却什么都看不到,程序却退出了,log里面也没有错误日志。
这个错误信息为什么有时候有有什么没呢,可不可以改什么设置让它一直有?
(由于机器配置原因,转储文件不能开,这种情况下,大家是怎么查bug的?)

------解决方案--------------------
./gs >gs.out 2>&1 &
程序的标准输出和标准错误输出都被重定向了
能在屏幕上打印的已经不是程序本身了
是内核或者系统哪个块的吧

如上猜
------解决方案--------------------
楼上正解。。。
不过程序出错没有core掉吗,没有core文件?
有的话,挂gdb看下呗