gdb调试qemu上运行的内核时,出现Cannot access memory at address错误

(gdb) lx-ps
Python Exception 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

你可能感兴趣的:(内核学习)