+
23
-

回答

Core Dump 可以理解成Linux程序崩溃时自动保存的程序黑匣子。当C/C++这类程序发生段错误、内存越界、空指针等致命bug意外挂掉,操作系统会把崩溃瞬间这个进程完整内存快照、变量、函数调用栈、CPU寄存器全部打包,存成一个core二进制文件,这个过程就叫核心转储。

它最大价值是事后离线排错。线上服务器崩溃往往很难复现,程序一死内存数据直接消失;有core文件,就能用gdb调试器打开,还原崩溃现场,定位到底在哪个函数、哪一行代码炸了。

默认Linux很多系统是关闭core dump的,受ulimit限制。开启后才会生成core文件。注意缺点:core文件体积巨大,等于进程当时占用内存大小,高内存服务生成它会占用大量磁盘;同时文件包含内存里的敏感数据,生产环境要做好权限管控,及时清理旧转储文件。它是后端、数据库、中间件排查偶发崩溃的利器。

网友回复

我知道答案,我要回答