2012-05-16 39 views
1

我正在研究内核模块和用户空间应用程序来测试该模块。Linux如何调试操作系统冻结问题

问题是,在测试过程中我的系统挂起/冻结。

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

打印的最后一条消息就在我的用户空间应用程序的linux select调用之前。选择以某种方式冻结系统?

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

+3

第42行有一个未初始化的变量。 – wildplasser

+0

你怎么知道的?我没看到代码。 – Linuxios

+1

@wildplasser:你在说什么文件? :) – MA1

回答

3

正如前面提到的,你的用户空间程序不能冻结Linux,所以它在你的内核模块中出错。调试的最佳方法是use a kernel debugger,并找出你的模块做错了什么。

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

2

根据定义,用户空间程序无法冻结Linux。内核中存在一个错误。

+0

是的。但问题是如何调试? – MA1

+0

那么,如果我要调试一个内核,我会认真考虑一下[内核调试器](http://kernel.org/pub/linux/kernel/people/jwessel/kdb/index.html)。 –