Debugging 如何使用“-e”从“recvfrom”中删除“recvfrom”?
在调试一个主要执行套接字操作的多线程程序时,我尝试将Debugging 如何使用“-e”从“recvfrom”中删除“recvfrom”?,debugging,strace,Debugging,Strace,在调试一个主要执行套接字操作的多线程程序时,我尝试将strace限制为recvfrom和sendto。 如果我只指定-f和-p参数,我会看到(除其他参数外)recvfrom和sendto系统调用 但是,当我使用附加的-e recvfrom-e sendto时,我只看到sendto系统调用。 我使用的是strace 4.10(SLES12 SP4中的strace-4.10-3.1.x86_64)。 这可能是已知的错误吗?语法是[-eexpr]…,所以多个-e应该可以。只有最后一个-e获胜,所以您必
strace
限制为recvfrom
和sendto
。
如果我只指定-f
和-p
参数,我会看到(除其他参数外)recvfrom
和sendto
系统调用
但是,当我使用附加的-e recvfrom-e sendto
时,我只看到sendto
系统调用。
我使用的是strace 4.10(SLES12 SP4中的strace-4.10-3.1.x86_64)。
这可能是已知的错误吗?语法是
[-eexpr]…
,所以多个-e
应该可以。只有最后一个-e
获胜,所以您必须指定-e recvfrom,sendto
来跟踪这两个系统调用。这意味着手动页面的语法错误[-eexpr]…
与[-eexpr[,expr]…]
不同。这没有错,因为recvfrom,sendto
表示单个表达式(trace=recvfrom,sendto
)。