gpt4 book ai didi

linux - ubuntu 内核在 OOPS 上挂起而没有在 dmesg 或/var/log/kern.log 中显示堆栈跟踪

转载 作者:太空宇宙 更新时间:2023-11-04 11:46:30 25 4
gpt4 key购买 nike

我有一个带有故意空指针访问的示例驱动程序。当我加载驱动程序时,我的 ubunut 18.04 和 4.15.0-55-generic 内核没有在 dmesg 或 dmesg -w 或/var/log/kern.log 文件中显示任何堆栈跟踪。

我有其他具有相同配置的 Ubuntu 系统,它没有挂起,并且在 dmesg 或/var/log/kern.log 中显示正确的内核 oops。

我想准确地解决问题的原因以及导致内核永远挂起的设置。

我尝试重新安装 linuxcrashdump kdump 和 kexec-tools。但是还是有问题。

稍后,我将与工作的 Ubuntu 和非工作的 Ubuntu 进行比较。在工作系统中,没有Linux-crashdump、kdump-tools和kexec-tools。

最佳答案

也许在内核中标志 CONFIG_DEBUG_KERNEL 没有打开。但无论如何,这不太可能是内核本身的问题。

我在驱动程序开发中经常使用printk。当您加载驱动程序时,它通常会在控制台 上显示信息。我建议在你的驱动程序的初始化和关键行之前和之后放置一个 printk。因此,您将看到代码执行了多远。

printk(KERN_ERR "Reached init of my driver");
...
printk(KERN_ERR "Reached open device");
...

使用 KERN_xxx 您可以设置严重性。当你开始的时候,选择一个高的。它必须被设置。除此之外,它的工作方式类似于 printf

关于linux - ubuntu 内核在 OOPS 上挂起而没有在 dmesg 或/var/log/kern.log 中显示堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57472458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com