美文网首页
Linux内核调试-代码段设置为只读

Linux内核调试-代码段设置为只读

作者: 吴丹_89fc | 来源:发表于2021-03-13 10:48 被阅读0次

    使用场景

    有时候设备死机的直接原因是代码段被改写,导致指令异常,而这种情况常见的SLUB DEBUG、kasan等内存检测机制是无法检测到的。可以尝试将代码段设置为只读,这样就在改写代码段的时候直接触发异常,收集到真正的死机点。

    使用方法

    在ARMv7的平台下,可以开启内核的以下配置项,将代码段变成只读

    • CONFIG_ARM_KERNMEM_PERMS=y:将内核代码段设置为"只读+可执行"
    • CONFIG_DEBUG_RODATA=y:是CONFIG_ARM_KERNMEM_PERMS子选项,作为默认值
    • CONFIG_DEBUG_SET_MODULE_RONX=y:将内核模块地址段设置为"只读+可执行"
    • CONFIG_ARM_PTDUMP=y:打印页表布局,还需要修订dump接口
    • CONFIG_DEBUG_PAGEALLOC=y:将释放内存从页表中移除,来检测后使用,原来已开启;
    • CONFIG_PAGE_POISONING=y:

    实际案例

    相关文章

      网友评论

          本文标题:Linux内核调试-代码段设置为只读

          本文链接:https://www.haomeiwen.com/subject/dscxcltx.html