如何使用 `-e` 跟踪 `recvfrom`?

How to strace `recvfrom` using `-e`?

调试一个主要执行套接字操作的多线程程序,我试图将 strace 限制为 recvfromsendto。 如果我只指定 -f-p <pid> 参数,我会看到(除其他外)recvfromsendto 系统调用。

然而,当我使用额外的 -e recvfrom -e sendto 时,我只看到 sendto 系统调用。 我正在使用 strace 4.10(来自 SLES12 SP4 的 strace-4.10-3.1.x86_64)。 这可能是一个已知的错误吗?语法说 [-eexpr]...,所以多个 -e 应该没问题。

只有最后的 -e 获胜,因此您必须指定 -e recvfrom,sendto 来跟踪这两个系统调用。