gdb調試qemu上運行的內核時,出現Cannot access memory at address錯誤

(gdb) lx-ps
Python Exception <class 'gdb.MemoryError'> Cannot access memory at address 0xffffffff81c15b98: 
Error occurred in Python: Cannot access memory at address 0xffffffff81c15b98
(gdb)

 

網上查詢發現是Kernel address space layout randomization搞的鬼。地址隨機偏移以後,vmlinux裏面的符號地址與運行時的真實地址就對不上了。按原來鏈接時的符號地址訪問就會出現錯誤。

參見文章:

https://lwn.net/Articles/569635/

 

解決方法,qemu啓動內核時命令行參數加上  nokaslr 

或者編譯內核時去掉配置項(未實測):

CONFIG_RANDOMIZE_BASE

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章