2015-05-11 40 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

感谢您的信息 –