崩溃后查看内核日志

时间:2011-04-26 10:13:42

标签: debugging crash linux-kernel

我正在调试系统崩溃。我收到了OOPS消息,发现了一些错误的代码。我希望在崩溃之前我有dmesg的输出。但是,我有内核的System.map文件。如何使用它来查看dmesg使用的环形缓冲区收集的最后消息。

日志消息肯定会附加到RAM中的某些日志文件中。你能帮我找到创建日志文件的地址或者如何提取日志文件吗?

〜感谢

2 个答案:

答案 0 :(得分:5)

阿米特,

根据我开发Linux设备驱动程序的经验,我发现串口调试是不可或缺的。当然,这假设您有第二个系统可用于捕获串行输出。

要启用此功能,您需要做两件事:

  • 在内核中启用SERIAL_8250_CONSOLE。如果您更喜欢使用make menuconfig,可以在Device Drivers \--> Character devices \--> Serial drivers \--> Console on 8250/16550 and compatible serial port下找到。

  • 此外,您还需要使用以下参数启动内核,以使正常的屏幕显示与串行输出console=tty0 console=ttyS0,115200保持一致。

  • 将开发站的串口连接到另一台站的串口(我通常使用运行HyperTerm的Windows机器)。

同样,这只是我在Linux调试中发现的一个选项。我希望你能充分利用它。

答案 1 :(得分:0)

这些天比找到串行电缆更容易(我的2台笔记本电脑甚至没有一个串口),但只有在 syslogd可以写入磁盘后发生崩溃 >

启动,崩溃,启动livecd,读取/ var / log / messages

如果在你拥有文件系统之前发生了,你也可以通过UDP使用日志主机。请参阅syslog / syslog-ng手册