我正在调试系统崩溃。我收到 OOPS 消息并找到了有问题的代码。我希望我在崩溃之前有 dmesg 的输出。但是,我有内核的 System.map 文件。如何使用它来查看 dmesg 使用的环形缓冲区收集的最后一条消息。
日志消息肯定会附加到 RAM 中的某个日志文件中。你能帮我找到正在创建日志文件的地址或者我如何提取日志文件吗?
~谢谢
最佳答案
阿米特,
根据我开发 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
一起工作。 同样,这只是我发现在 Linux 调试中非常宝贵的一个选项。我希望你能好好利用它。
关于debugging - 崩溃后查看内核日志,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5788853/