我正在编写一个Linux模块,并获得:
Unable to handle kernel NULL pointer dereference什么意思?
发布于 2008-12-04 17:28:36
听起来像是当前具有空值(零)的指针正在被取消引用。在取消引用指针之前,为指针分配一个地址。
例如:
int x = 5;
int * x_ptr = NULL;
x_ptr = &x; // this line may be missing in your code
*x_ptr += 5; //can't dereference x_ptr here if x_ptr is still NULL发布于 2008-12-04 17:31:47
内核尝试从地址0中读取数据,而您的内核显然对其进行了特殊处理(好事情!)。由于内核没有办法像我们从用户模式应用程序中知道的那样直接杀死自己(那些应用程序会收到一个Segmentation Fault),所以这个错误是致命的。它可能已经panic'ed并向您显示了该消息。
http://en.wikipedia.org/wiki/Null_pointer#The_null_pointer
发布于 2008-12-04 18:12:27
这意味着内核试图遵守一个空指针。这会产生一个无法在内核中处理的页面错误-如果它正在运行一个用户任务(但在内核空间中),它通常会生成一个"Oops“,(不干净地)杀死当前任务,并可能泄漏内核资源。如果它在其他上下文中,例如中断,它通常会导致内核死机。
https://stackoverflow.com/questions/341422
复制相似问题