Snoop进程间通信

有没有人试图创建进程间通信的日志文件? 有人能给我一些关于实现这一目标的最佳方式的建议吗?


这个问题不太清楚,评论使得它不太清楚,但无论如何...

首先尝试的两件事是ipcs和strace -e trace = ipc。


如果你想记录所有的IPC(看起来非常密集),你应该考虑使用仪器。

他们有很多很好的工具,特别是在手册的这一部分中检查PIN码;

在这个例子中,我们展示了如何通过检查指令来做更多选择性仪器。 该工具会生成程序引用的所有内存地址的跟踪。 这对调试和模拟处理器中的数据缓存也很有用。

如果您正在做一些重量级的调整和分析,请查看TAU(调整和分析功能)。


与内核驱动程序的通信可以有多种形式。 通常有一个特殊的设备文件用于通信,或者可以有一个特殊的套接字类型,例如NETLINK。 如果你幸运的话,有一个字符设备,read()和write()是交互的唯一方式 - 如果是这种情况,那么这些调用很容易与各种方法截取。 如果你不走运,许多事情都是用ioctl完成的,或者更加困难。

然而,使用内核驱动进行通信的程序运行“strace”可以揭示它所做的一切 - 尽管如果碰巧有程序用于通信的库,'ltrace'可能会更具可读性。 通过将参数调整为'strace',你可能会得到一个只包含你需要的信息的转储:

  • 首先,仔细观察这些调用并试图找出内核通信的手段
  • 然后,添加过滤器以strace调用以仅记录内核通信调用
  • 最后,确保strace记录所有调用的完整字符串,因此您不必处理截断的数据
  • 指向IPC调试的答案可能不相关,因为与内核通信几乎从不与IPC有任何关系(至少不是与UNIX IPC设备不同)。

    链接地址: http://www.djcxy.com/p/48759.html

    上一篇: Snoop interprocess communications

    下一篇: Adjust font size depending on which font is used from a font stack