Skip to content

内核调试

Overview

这在页表之后, 你猜猜是为什么?

当然就是内核的虚拟地址是在编译时确定的, 但是物理地址是在运行时才确定的

之前我也写过一份代码可以直接调试 平坦模式 下的内核, 但是这操作太繁琐了, 思路就是依靠已知的入口处地址, 拿到 text 段以及其他段的地址, 然后动态加载调试符号, 这是允许动态寻址时的情况, 当然也可以不计算, 直接照着 Elf 记录的信息覆盖掉原来的那段内存就好了

现在的内核应该都会占用高地址吧? 有固定的虚拟地址, 为什么还要去选择一个不好用的方式呢?