2011-01-07 31 views
1

我有一個Python庫,我正在嘗試調試(pyzeroconf)。下面的代碼返回'34'就好像數據是沿着套接字發送的,但是我在兩個不同的wireshark裝備的PC上看不到這些數據包。跟蹤Linux套接字調用?

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

我在哪裏,我需要了解發生了什麼事情下來調用堆棧中的點。有沒有辦法追蹤發生了什麼?

解決方案:問題與庫確定爲默認值的「綁定地址」有關。不允許使用「0.0.0.0」值,並且無提示(至少在Linux上)。

回答

4

你可以使用strace,例如,

$ strace -o logfile -e trace=network cmdline 
1

我肯定這不是你所期望的,但可以幫助: strace的-f -F蟒蛇myscript.py

strace的轉儲程序的通用的系統調用。

+0

感謝您的幫助 - 我的期望是在實際的系統調用中發現奇怪的東西,但我無法在蹤跡中看到任何東西。我不明白爲什麼沒有數據包顯示在電線上! – jldupont

0

爲什麼INADDR_ANY IP地址失敗?它不應該。從我的角度來看,你的照片中還缺少其他東西。如果您嘗試使用(errno,string)獲取更多描述性錯誤消息,則會發生什麼情況,除了代碼塊。