有没有人试图创建进程间通信的日志文件?有人可以就实现这个目标的最佳途径给我一些建议吗?
答案 0 :(得分:2)
问题不是很明确,评论不太清楚,但无论如何......
首先要尝试的两件事是ipcs和 strace -e trace=ipc。
答案 1 :(得分:1)
如果您想记录所有IPC(看起来非常密集),您应该考虑使用仪器。
他们有很多很好的工具,请查看手册中PIN的this section;
在这个例子中,我们展示了如何做 更具选择性的仪器 检查说明。这个工具 生成所有内存的痕迹 程序引用的地址。 这对于调试和调试也很有用 用于模拟数据缓存 处理器。
如果你做了一些重量级的调整和分析,请查看TAU(调整和分析实用程序)。
答案 2 :(得分:1)
与内核驱动程序的通信可以采用多种形式。通常有一个特殊的设备文件用于通信,或者可以有一个特殊的套接字类型,如NETLINK。如果幸运的话,有一个字符设备,read()和write()是唯一的交互方式 - 如果是这种情况,那么这些调用很容易被各种方法拦截。如果你运气不好,很多事情都是用ioctls做的,或者更困难的事情。
然而,使用内核驱动程序在程序上运行'strace'可以揭示它所做的一切 - 尽管如果恰好有程序用于通信的库,'ltrace'可能更具可读性。通过将参数调整为'strace',您可以获得一个只包含所需信息的转储:
指向IPC调试的答案可能并不重要,因为与内核的通信几乎从未与IPC有任何关系(至少不是不同的UNIX IPC设施)。