4
A
回答
5
声音像一个当前具有NULL值(零)的指针被取消引用。在解除引用前将地址分配给指针。
例如
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
4
内核试图从地址0
,其内核显然会将专门阅读(好东西!)。由于内核无法像我们从用户模式应用程序中知道的那样自杀(这些应用程序会收到Segmentation Fault),所以这个错误是致命的。它可能会有panic'ed并向您显示该消息。
4
这意味着内核试图尊重一个空指针。这会产生一个内核无法处理的页面错误 - 如果它正在运行一个用户任务(但是在内核空间中),它通常会产生一个“Oops”,它会(不干净地)杀死当前的任务并可能泄漏内核资源。如果在其他情况下,例如一个中断,它通常会导致内核恐慌。
相关问题
- 1. Linux内核编程:“无法在虚拟地址[地址]处理内核NULL指针取消引用”
- 2. Linux内核编程
- 3. CUDA内核指针参数成为NULL
- 4. Linux内核进程管理
- 5. Linux内核模块编程
- 6. Linux内核:copy_from_user - 结构与指针
- 7. 内核级内存处理编码
- 8. Linux内核加密指南
- 9. Linux内核3.9 KVM for ARM处理器
- 10. PCIe中断处理linux内核
- 11. 内核编程
- 12. OpenCL内核无法编译
- 13. Linux内核引用计数内核对象吗?
- 14. Linux内核模块编译
- 15. Linux内核模块编译
- 16. Linux内核版本编号
- 17. 使用gcc与内核头文件编译Linux内核模块
- 18. Linux 2.6内核进程管理
- 19. 从哪里开始linux内核编程?
- 20. 为linux内核配置物理内存
- 21. NT内核编程
- 22. Linux内核线程问题
- 23. linux - 内核线程抢占
- 24. 针对linux内核进程调度程序的FCFS算法
- 25. 用户进程的内核堆栈| Linux内核
- 26. 编译我自己的内核(而不是从Linux内核源)
- 27. 其他内核的Linux内核模块开发编译
- 28. 在linux内核中使用双指针哈希列表实现
- 29. Linux内核系统调用返回没有给出的指针
- 30. 编译64位Linux内核使用GCC
你的分析是正确的,但代码中的评论是错误的。 * x_ptr + = 5是可以的,因为x_ptr现在具有x(堆栈地址)的地址,因此可以解除引用。 – ctuffli 2008-12-04 23:34:10