Answers:
这在很大程度上取决于通信机制。
在最透明的范围内,进程可以使用Internet套接字(即IP)进行通信。然后,wireshark或tcpdump可以通过将其指向回送接口来显示所有流量。
在中间级别上,可以使用瑞士军队系统跟踪电锯/ / / ... 来观察管道和unix套接字上的流量。但是,这可能会大大减慢过程,因此可能不适合进行概要分析。truss
strace
trace
在最不透明的一端,有共享内存。共享内存的基本操作原理是,在每个涉及的过程中访问都是完全透明的,您只需要系统调用即可设置共享内存区域。从外部跟踪这些内存访问将很困难,尤其是如果您需要观察以免干扰时间的话。您可以尝试使用Linux跟踪工具包之类的工具(需要内核补丁),并查看是否可以提取有用的信息。我希望Solaris具有更好的工具(但我对此一无所知)。
如果有资源,最好的选择可能是将跟踪语句添加到关键库函数中。LD_PRELOAD
即使您没有(整个)源,也可以通过技巧来实现,只要您对访问共享内存的程序部分的控制流有足够的了解。