gpt4 book ai didi

c - 无需重新编译 Debian 内核即可调试新的系统调用

转载 作者:行者123 更新时间:2023-11-30 16:34:37 25 4
gpt4 key购买 nike

正如标题所说,我只想测试/调试系统调用而不重新编译整个内核。我使用的是 Debian 4.0.15 内核。我读过,如果不重新编译,实际上无法将系统调用添加到内核,但我希望有某种方法至少可以更快地检查错误。我以前从未真正这样做过,但我的所有实现文件都是用 C 编写的;我可以用 gcc 编译它们并运行吗?我希望系统调用获得一些额外的访问权限,并且我被告知根本不要使用浮点算术,所以我想系统调用中还存在其他限制,这些限制在使用 gcc 编译时不会被捕获。

最佳答案

系统调用调度表是在系统构建过程中通过精心设计的程序构建的。该程序会注意相同的系统调用将始终获得相同的入口点,因此您无法获得与所请求的调用不同的调用。没有办法在运行时注册系统调用并使其可供用户程序使用(我认为这是出于安全原因),但是您可以安装一个新的调用,通过指针调用已安装的函数,然后安装默认情况下,一个不执行任何操作的函数在模块加载时发生更改,并在模块卸载时被愚蠢的默认值替换。这允许您将代码移动到模块并动态加载/卸载它,而无需重新编译基础内核。然后,当你测试完代码后,你就可以消除通过指针对函数的调用,直接调用函数。

关于c - 无需重新编译 Debian 内核即可调试新的系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49269049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com