我正在研究内核模块和用户空间应用程序来测试该模块。Linux如何调试操作系统冻结问题
问题是,在测试过程中我的系统挂起/冻结。
我在代码中放置了很多调试打印。
打印的最后一条消息就在我的用户空间应用程序的linux select调用之前。选择以某种方式冻结系统?
那么,我该如何调试,哪里是问题?问题是否在用户空间应用程序或内核模块上?
我正在研究内核模块和用户空间应用程序来测试该模块。Linux如何调试操作系统冻结问题
问题是,在测试过程中我的系统挂起/冻结。
我在代码中放置了很多调试打印。
打印的最后一条消息就在我的用户空间应用程序的linux select调用之前。选择以某种方式冻结系统?
那么,我该如何调试,哪里是问题?问题是否在用户空间应用程序或内核模块上?
正如前面提到的,你的用户空间程序不能冻结Linux,所以它在你的内核模块中出错。调试的最佳方法是use a kernel debugger,并找出你的模块做错了什么。
常见错误是您的模块传递给内核或锁定问题的未初始化指针,因此仔细查看这些错误。
根据定义,用户空间程序无法冻结Linux。内核中存在一个错误。
是的。但问题是如何调试? – MA1
那么,如果我要调试一个内核,我会认真考虑一下[内核调试器](http://kernel.org/pub/linux/kernel/people/jwessel/kdb/index.html)。 –
第42行有一个未初始化的变量。 – wildplasser
你怎么知道的?我没看到代码。 – Linuxios
@wildplasser:你在说什么文件? :) – MA1