日期:2014-05-16  浏览次数:20774 次

模块运行一段时间死机
我的一个模块被正确加载进内核了,可是在运行一段时间就引起了死机请问这是怎么回事!
我的程序里是调用到一个函数,函数里我使用了两个数组指针分别是
char   *a[4000];char   *b[65535];
这个函数被正确执行了,能够看到输出的结果,可是过了一段时间之后就死机了.这是为什么??
是不是因为函数里的指针没有释放掉??系统自动释放内存是不是需要时间的,大概多长?有了解的,请回答一下!

------解决方案--------------------
模块编程对空间的使用及其敏感,不用的数据一定要释放掉,内核不会自动释放,如果有野指针之类的不安定因素,其他内核模块在使用时,可能会引用到非法的数据区,导致内核崩溃,也就是死机
------解决方案--------------------
系统自动释放内存要等到相应的程序空间释放以后。由于模块加载后就成为内核的一部分,所以要等到系统关闭才会释放。
你可以使用一些内核调试工具查查看。