2015-05-11 37 views
1

我正在開發使用WinPcap的嗅探器。當我連續運行應用程序時,6小時後RAM變滿並且沒有響應。爲什麼記憶力不斷增加? 是const u_char* pkt_data每次都佔用內存嗎? 哪個變量在Pcap API中持續佔用內存?如果是的話如何釋放內存?pkt_data是否連續佔用內存?

+0

正常情況下沒有內存可以在pcap中釋放。這很可能是你的代碼做錯了,這導致了這一點。 – nos

回答

1

const u_char* pkt_data每次都佔用內存嗎?

號存儲指向pkt_data不能保證你的回調函數返回後(如果你使用pcap_loop()pcap_dispatch())或pcap_next()pcap_next_ex()下一次調用後繼續分配。在WinPcap中,there's a fixed-size circular buffer into which packets are placed in the kernel,並且這些讀入庫中的單個固定大小的緩衝區。

哪個變量在Pcap API中連續佔用內存?

無。正如nos所表明的那樣,這可能是程序中的內存泄漏。

+0

感謝您的信息 –