(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