Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux-kernel – 用户定义的页面错误和异常处理程序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我试图了解我们是否可以在内核/用户模式下添加页面错误处理程序/异常处理程序,并在将控件返回给内核之前处理我们引发的错误. 这里的任务不是修改现有的内核代码(do_page_fault fn),而是添加一个用户定义的处理程序,当页面错误或异常被触发时将被查找 人们可以找到像“kprobe”这样的工具,它们可以在指令中提供钩子,但看起来这样做不符合我的目的. 如果有人可以帮助我理解这一点或指向好的参
我试图了解我们是否可以在内核/用户模式下添加页面错误处理程序/异常处理程序,并在将控件返回给内核之前处理我们引发的错误.
这里的任务不是修改现有的内核代码(do_page_fault fn),而是添加一个用户定义的处理程序,当页面错误或异常被触发时将被查找

人们可以找到像“kprobe”这样的工具,它们可以在指令中提供钩子,但看起来这样做不符合我的目的.

如果有人可以帮助我理解这一点或指向好的参,那将会很棒.

解决方法

用户空间,您可以为SIGSEGV定义信号处理程序,因此无论何时进行无效的内存访问,都将调用您自己的函数.当与mprotect()结合使用时,程序可以管理自己的虚拟内存,所有这些都来自用户空间.

但是,我得到的印象是,您正在寻找一种方法拦截所有页面错误(主要,次要和无效)并在响应中调用任意内核函数.我不知道干净的方法.当我在自己的研究项目中需要这个功能时,我最终将代码添加到do_page_fault().它对我来说很好,但它是一个黑客.如果有人知道一个干净的方法来做这件事我会很感兴趣(即,可以由香草内核上的模块使用).

@H_607_37@

大佬总结

以上是大佬教程为你收集整理的linux-kernel – 用户定义的页面错误和异常处理程序全部内容,希望文章能够帮你解决linux-kernel – 用户定义的页面错误和异常处理程序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。