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. 內核崩潰 - 無法處理內核NULL指針解除引用000002c0
- 3. 無法處理內核空指針取消引用
- 4. 無法在虛擬地址處理內核NULL指針取消引用
- 5. Linux內核編程
- 6. 內核無法處理空指針解除引用 - 使用kmem_cache_alloc與結構
- 7. Linux內核處理低內存條件
- 8. CUDA內核指針參數成爲NULL
- 9. Linux內核模塊編程
- 10. Linux內核進程管理
- 11. Linux內核:copy_from_user - 結構與指針
- 12. 編譯linux內核
- 13. 編譯Linux內核
- 14. CUDA指針,調用內核
- 15. 內核級內存處理編碼
- 16. Linux內核加密指南
- 17. Linux內核3.9 KVM for ARM處理器
- 18. PCIe中斷處理linux內核
- 19. 內核編程
- 20. OpenCL內核無法編譯
- 21. 「嘗試修改驅動程序後無法處理null內核空指針失效」
- 22. Linux內核編譯器FriendlyARM
- 23. Linux內核模塊編譯
- 24. Linux內核模塊編譯
- 25. Linux內核編碼風格
- 26. Linux內核版本編號
- 27. Linux內核引用計數內核對象嗎?
- 28. 使用gcc與內核頭文件編譯Linux內核模塊
- 29. Linux內核add_timer
- 30. Linux內核多核問題
你的分析是正確的,但代碼中的評論是錯誤的。 * x_ptr + = 5是可以的,因爲x_ptr現在具有x(堆棧地址)的地址,因此可以解除引用。 – ctuffli 2008-12-04 23:34:10