我想通过使用Utrace来编写一个系统调用插入。我知道Utrace项目已经被放弃了,但它的部分代码在kprobe和uprobe上使用。
我还没有很好地理解它们是如何工作的。尤其是uprobe,你能解释一下它们之间有什么区别吗?我可以在不编写模块的情况下使用uprobe来检查系统调用的实际参数吗?
谢谢
发布于 2012-12-26 22:42:10
Kprobe在内核代码中创建和管理探测点,也就是说,您想要探测某个内核函数,比如do_sys_open()。要了解Documentation/trace/kprobetrace.txt的用法,您需要看一看kprobe。
Uprobe在用户应用程序中创建和管理探测点,也就是说,您希望探测某个用户空间函数,但探测是代表被探测进程在内核空间中运行的。你需要看一看Documentation/trace/uprobetracer.txt来了解uprobe的基本用法,看看它的目的是什么。
https://stackoverflow.com/questions/14041571
复制相似问题