崩溃后查看内核日志

3
我正在调试系统崩溃问题。我收到了 OOPS 消息并找到了有问题的代码段。我希望在崩溃之前能够获得 dmesg 的输出。但是,我有内核的 System.map 文件。怎样使用它来查看由 dmesg 使用的环形缓冲区所收集的最后一条消息?
这些日志消息肯定被追加到 RAM 中的某个日志文件中。您能否帮助我找到创建日志文件的地址或者如何提取日志文件?
~谢谢

你检查过 /var/log/messages 了吗? - Will Tate
1
是的,但它没有包含崩溃运行的日志。 - Amit Virdi
2个回答

5

Amit,

从我的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调试中发现非常有用的一种选项。希望您能好好利用它。


0

现在比找串行电缆容易多了(我的两台笔记本甚至没有一个串口),但只有在系统崩溃syslogd可以写入磁盘时才能使用。

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

如果它发生在你有文件系统之前,你也许可以通过UDP使用loghost。请参阅syslog/syslog-ng手册。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接