dmesg命令,dmesg详解

利用dmesg和addr2line再现bug

在某些情况下,我们的程序已关闭,但没有保存核心dump信息。 此时,如果想知道程序在哪个位置发生了错误,就不是那么简单了。

有一种方法可以大致判断程序错误的大致位置。

1.用dmesg查找出错的代码段地址。

命令格式:

dmesg | grep program_name其中program_name是类似于以下内容的可执行文件:

$ dmesg|grep test _ Prog [ 103936.227079 ] test _ Prog [ 29319 ] : segfault at 40078 CIP 000000000400634 sp 0007 FFE 540078 d 468888078

2.用addr2line将地址解析成函数名。

接在上面的例子之后:

$ addr2line-e./test _ Prog 00000000400634-f _ z9 errorfuncv?0其中,errorFunc是有错误的函数名称,可以找到合适的错误代码。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注