嵌入式系统中进程间通信的监视方法
root@host:~$ ipcmsg -p pid -l xxx.xxx.xxx.xxx -b 6000 |
pid 是被监视进程的 pid ,可以通过 ps 命令获得。 -l 参数后面指定 PC 主机的 IP 地址。 -b 参数指明了接收的端口号。
最初进行监视时, ipcmsg 是没有 IP 地址和端口号参数的。所有信息是输出到串口控制台中。这既影响了运行的效率(大量的在串口上的输出会影响目标板的运行速度),也不利于信息的处理。由于我们的目标板具备以太网接口,我们很容易的想到将 ipcmsg 截获的数据包转发到 PC 主机上。使用 PC 主机更便于对进程间通信的数据包进行分析。在 PC 主机上,我们使用 wireshark 这个非常流行的开源的网络报文分析软件接收来自目标板的信息。
在实际的使用过程中,我们使用以太网线将目标板与 PC 主机相连。然后,在目标板上启动 ipcmsg ,并为其指定监视进程的 pid 。 ipcmsg运行后,我们在PC主机上启动 wireshark 接收来自 ipcmsg 的数据包。这些数据包中包含了 mips 目标板上进程间通信的信息。利用我们为 ipcmsg 专门开发的 wireshark 插件,在 wireshark 上,我们可以详细的分解 ipcmsg 转发来的数据包,非常直观的分析进程间通信的过程和可能存在的问题。
从图中可以看到,我们从 ipcmsg 获得了进程间通信的方式,参数( path 是 AF_UNIX域 socket 地址参数),方向和内容,以及进程名称。这些信息帮助我们对嵌入式系统的运行状态进行分析。而这一切非常直观和便于操作。
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)