1

我有一个要调试的 Python 库(pyzeroconf)。以下代码返回“34”,就好像数据是通过套接字发送的,但我在两台不同的配备有wireshark 的 PC 上看不到这些数据包。

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

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

解决方案:问题与库默认的“绑定地址”有关。“0.0.0.0”的值是不允许的,并且会默默地失败(至少在 Linux 上)。

4

3 回答 3

4

你可以使用strace,例如

$ strace -o logfile -e trace=network cmdline
于 2011-01-07T15:02:32.257 回答
1

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

strace 转储通用程序的系统调用。

于 2011-01-07T15:03:32.223 回答
0

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

于 2011-01-07T20:41:55.690 回答