作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想使用 Utrace 编写一个系统调用插入。我了解到Utrace项目已经被废弃,但是它的部分代码用在了kprobe和uprobe上。
我还不太了解这些是如何工作的。特别是uprobe 你能解释一下它们之间存在什么区别吗?我可以在不编写模块的情况下使用 uprobe 来检查哪些是系统调用的实际参数吗?
谢谢
最佳答案
Kprobe 在内核代码中创建和管理探测点,也就是说,您想要探测某个内核函数,例如 do_sys_open()。你需要看看Documentation/trace/kprobetrace.txt了解 kprobe 的一些用法。
Uprobe 在用户应用程序中创建和管理探测点,也就是说,你想探测一些用户空间函数,但探测是代表被探测进程在内核空间中运行的。你需要看看Documentation/trace/uprobetracer.txt了解 uprobe 的基本用法,了解它的目的。
关于linux - kprobe vs uprobe 系统调用插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14041571/
我想使用 Utrace 编写一个系统调用插入。我了解到Utrace项目已经被废弃,但是它的部分代码用在了kprobe和uprobe上。 我还不太了解这些是如何工作的。特别是uprobe 你能解释一下它
我是一名优秀的程序员,十分优秀!