(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