我正在开发一个内核模块和一个用户空间应用程序来测试该模块。
问题是在测试期间我的系统挂起/冻结。
我在代码中放置了很多调试打印。
打印的最后一条消息就在我的用户空间应用程序中的linux select调用之前。select 是否会以某种方式冻结系统?
那么,我该如何调试问题出在哪里?问题出在用户空间应用程序还是内核模块上?
我正在开发一个内核模块和一个用户空间应用程序来测试该模块。
问题是在测试期间我的系统挂起/冻结。
我在代码中放置了很多调试打印。
打印的最后一条消息就在我的用户空间应用程序中的linux select调用之前。select 是否会以某种方式冻结系统?
那么,我该如何调试问题出在哪里?问题出在用户空间应用程序还是内核模块上?
正如 nm 所提到的,您的用户空间程序无法冻结 Linux,因此它是您的内核模块中的一个错误。调试它的最好方法是使用内核调试器,并找出你的模块做错了什么。
常见错误是模块传递给内核的未初始化指针或锁定问题,因此请仔细查看这些错误。
根据定义,用户空间程序不能冻结 Linux。内核中有一个错误。