【debug】debug经验|没有core文件和日志如何定位?

当遇到Linux系统中的segmentation fault问题,且没有core dump文件和日志时,可以通过dmesg、/var/log/messages、journalctl等工具进行定位。利用dmesg查看内核环形缓冲区信息,通过addr2line结合系统日志中的地址定位代码行。此外,还可以使用journalctl -xe查询系统日志,帮助找出故障原因。
摘要由CSDN通过智能技术生成

没有core dump文件和日志如何定位segment/core dump问题?

dmesg + addr2line 

dmesg打印环形缓冲区的内容。这些信息还会实时发送到syslogdklogd(在它们运行时),最终以形式发送给/var/log/messages;什么时候dmesg最有用是捕获之前syslogd和/或klogd开始的启动时消息,以便将它们正确记录。

dmesg:dmesg是(显示或驱动程序)消息。它用于检查或控制内核环形缓冲区。

messages:它包含全局系统消息,包括系统启动期间记录的消息。有几项已登录,/var/log/messages包括mail,cron,daemon,kern,auth等。

步骤:

以后, 在没有core时, 可以优先看:

      1. /var/log/messages

      2. dmesg                                dmesg    /var/log/messages

         dmesg  -Tw  显示时间

        dmesg |less  or dmesg |more   分页查看。 (more 只能向后翻页)

      3. /var/log/dmesg

      4.journalctl -xe 命令(系统日志查询)

       journalctl -k  和 "journalctl --dmesg 只显示系统的内核日志信息。

        -f, --follow
        只显示最新的日志项,并且不断显示新生成的日志项。 此选项隐含了 -n 选项。

Linux日志管理之journalctl ;https://www.cnblogs.com/askword/p/14506430.html

实例:

xxxxxx# ./a.out           #执行程序
Segmentation fault   (注意: 如果我机器上的core开关打开了, 就会提示Segmentation fault(core dumped), 类似提示大家应该见过, 比如Aborted(core dumped))

#查看消息

xxxxxx# cat /var/log/messages | grep -i seg   
Apr  2 15:13:19 yyyyyy kernel: a.out[24764]: segfault at 0 ip 000000000804854f sp 00000000ffc9e7d4 error 6 in a.out[8048000+1000]

#用addr2line查看000000000804854f对应行

xxxxxx# addr2line -e a.out 000000000804854f

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值