首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >K探头:将返回探针与条目探针相关联

K探头:将返回探针与条目探针相关联
EN

Stack Overflow用户
提问于 2016-01-27 06:45:59
回答 1查看 202关注 0票数 0

我希望跟踪特定文件上的写入,所以我有一个想法,我可以这样做:

我在do_sys_open上创建一个探测,如果filename参数与我所寻找的模式匹配,我将使用一个触发器来启用一个返回探针,该探针获取返回的文件描述符id (它是$retval)。这个返回探测将在common_pid上有一个过滤器,因为我只对刚刚打开要监视的filenamedo_sys_open调用返回的filename感兴趣。返回探针接受fd,并在sys_write上启用另一个探测,在common_pidfd上设置一个过滤器。我希望通过这种方式,我只能在我正在监视的一个文件上跟踪write操作。

问题是,这不适用于多线程进程。如果一个进程同时调用open两次(使用两个线程),上述机制可能会失败。现在,我正试图找出一种方法,在do_sys_open的条目和do_sys_open上的返回探测之间进行关联,如果有任何建议,我会很高兴。

PS:我不确定这个问题是属于堆栈溢出还是unix & linux。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-27 16:05:18

你的做法是错误的。

首先,每个进程都有文件描述符号,因此您可以自动捕获几乎任何人编写任何东西来使用这样的fd号,这可能导致也可能不会写入您感兴趣的文件。

此外,sys_write在堆栈中太高,无法捕获所有合法的作者。

通常,您会查找您感兴趣的文件的inode,并在适当的写函数的基础上进行筛选。

但是,“监视写入文件”仍然有些模糊,因为不清楚如果有人要断开原始名称并使用该名称创建一个新文件,您希望发生什么。如果您想要处理,那么最好在某个开放的地方捕获线程,查看查找inode的内容,并将它们添加到原语中,以便您知道如何监视它。

无论如何,基于fd的监控是从根本上破坏的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35030488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档