2

我想用Utrace写一个系统调用插入。我了解到 Utrace 项目已被放弃,但其部分代码用于 kprobe 和 uprobe。

我不太了解这些是如何工作的。特别是 uprobe 你能解释一下它们之间有什么区别吗?我可以在不编写模块的情况下使用 uprobe 来检查系统调用的实际参数吗?

谢谢

4

1 回答 1

9

Kprobe 在内核代码中创建和管理探测点,也就是说,您要探测一些内核函数,例如 do_sys_open()。您需要查看Documentation/trace/kprobetrace.txt以了解 kprobe 的一些用法。

Uprobe 在用户应用程序中创建和管理探查点,也就是说,您要探查一些用户空间功能,但探查代表被探查的进程在内核空间中运行。您需要查看Documentation/trace/uprobetracer.txt以了解 uprobe 的基本用法,了解它的用途。

于 2012-12-26T14:42:10.217 回答