【发布时间】:2013-10-09 02:24:25
【问题描述】:
我正在尝试在内核级别检测交互式进程。 例如,如果用户单击某个应用程序窗口,我想检测从该用户交互产生的所有进程。 我的问题还没有结束。在某些情况下,由用户交互启动的那些进程将与一些其他现有进程通信,例如后台服务,并在给出一些 GUI 反馈之前等待该服务响应。我希望能够跟踪整个工作流程,并说出类似流程 A 在时间 1 通过鼠标单击启动然后在时间 2 与流程 B 通信然后流程 B 在时间 3 回复到流程 A 并最终流程 A 在时间 4 完成的内容。对于由交互式操作触发的工作流,逐步详细了解幕后发生的事情。最后说交互式工作流 X 的响应时间为 Y,并涉及一组流程 M。
有什么想法吗? 到目前为止,我一直在尝试检测(放置跟踪)与进程间通信相关的系统调用,但没有运气。也许我没有在正确的地方追踪。
谢谢!
【问题讨论】:
-
IPC 是什么意思?看起来您正在使用图形用户界面。
-
其实我并不关心特定的用户界面。它可以是任何外围设备(鼠标、键盘、遥控器等)触发的任何东西。我在与信号、管道和套接字相关的系统调用中放置了跟踪:kill、pread、pwrite、read、readv、recv、recvfrom、rcvmsg、send、sendmsg、sendto、write、writev。