技术分享
问题背景,我们的环境上偶尔会出现core文件不完整的情况,以前出现这种情况都没有办法及时处理,今天看文章找到了相关的处理方法
dmesg介绍
dmesg用来显示内核环缓冲区(kernel-ring buffer)内容,内核将各种消息存放在这里。在系统引导时,内核将与硬件和模块初始化相关的信息填到这个缓冲区中。内核环缓冲区中的消息对于诊断系统问题 通常非常有用。在运行dmesg时,它显示大量信息。通常通过less或grep使用管道查看dmesg的输出,这样可以更容易找到待查信息。例如,如果发现硬盘性能低下,可以使用dmesg来检查它们是否运行在DMA模式:dmesg | grep DMA
如果以太网连接出现问题,那么可以在dmesg日志中搜索eth
dmesg + addr2line
使用dmesg查看崩溃的位置
dmesg -T| grep asf
确定引发崩溃的so
[四10月1711:06:532019] asf[29610]: segfault at8ip 00007fe485de95c0 sp 00007fff0f3abca0 error4inlibasf_plugin_rest_server.so[7fe485ca6000+18e000]
用计算器起算出崩溃的地址
0x00007fe485de95c0-0x7fe485ca6000=0x1435c0
使用addr2line
addr2line -e libasf_plugin_rest_server.so 0x1435c0 -f
dmesg命令的其它用途
oom kill 在dmesg也是可以查看到的,而且不需要root用户
查看是否出现网络断开的情况
网友评论