跟踪Linux套接字调用?

时间:2011-01-07 14:53:24

标签: python linux sockets network-traffic

我有一个我试图调试的Python库(pyzeroconf)。以下代码返回'34',好像数据是从套接字发送的,但是我无法在2台不同的有线电脑上看到这些数据包。

bytes_sent = self.socket.sendto(out.packet(), 0, (addr, port))

我现在需要了解调用堆栈中发生了什么。有没有办法追踪发生的事情?

解决方案:问题与图书馆默认的“绑定地址”有关。不允许使用值“0.0.0.0”,并且(至少在Linux上)无声地失败。

3 个答案:

答案 0 :(得分:4)

您可以使用strace,例如

$ strace -o logfile -e trace=network cmdline

答案 1 :(得分:1)

我很确定这不是你所期望的,但可以提供帮助: strace -f -F python myscript.py

strace转储泛型程序的系统调用。

答案 2 :(得分:0)

为什么INADDR_ANY IP地址会失败?它不应该。从我的角度来看,你的照片中还缺少其他东西。如果您尝试使用(错误,字符串)代码块来获取更具描述性的错误信息,会发生什么。