Linux 如何调试操作系统卡住问题

标签 linux kernel-module panic

我正在开发一个内核模块和一个用户空间应用程序来测试该模块。

问题是在测试过程中我的系统挂起/卡住。

我在代码中放置了很多调试打印。

打印的最后一条消息就在 linux select 之前调用我的用户空间应用程序。 select 是否会以某种方式卡住系统?

那么,我该如何调试问题出在哪里呢?问题是否出在用户空间应用程序或内核模块上?

最佳答案

正如 n.m 提到的,你的用户空间程序无法卡住 Linux,所以它是你的内核模块中的错误。调试此问题的最佳方法是 use a kernel debugger ,并找出你的模块做错了什么。

常见错误是模块传递给内核的未初始化指针或锁定问题,因此请仔细查看这些错误。

关于Linux 如何调试操作系统卡住问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10618882/

相关文章:

recursion - Go中的递归函数,如果内层函数返回,外层函数是否继续正常执行?

linux - Ubuntu 上的 Laravel 5.5 内部服务器错误

linux - 是否有必要由程序员显式地刷新写入组合内存?

linux - 循环中的函数会破坏每隔一次迭代

windows - 如何识别Windows 10中的内核进程(以保护环0运行的进程)?

linux - 来自内核模块(dm9601 驱动程序)的 "Unknown symbol",这是否需要重建内核?

rust - 如何在捕获时向panick_info添加更多上下文?

linux - 用于提取第一秒并重命名文件夹中的 mp3 文件的 Bash 脚本

docker - 是否可以在由 docker 提供支持的容器中隔离模块内核?

Golang etcd 观察者 panic