我正在研究内存泄漏工具,问题是:这个工具应该只从测试程序中捕获内存泄漏,但实际发生的是,我使用API timer_create(POSIX)创建了一个计时器,这在某种程度上造成了泄漏144 + 56字节。
任何想法,如何阻止它?我怎样才能确保来自timer_create的所有malloc请求都没有被记录?
我使用的是定时器线程函数方法,而不是信号。 SIGEV_THREAD
答案 0 :(得分:0)
我在报告的内存泄漏中没有看到任何N
,只是看起来是一个小常量,所以我最初的猜测是这纯粹是设置定时器线程系统的一次性开销不是实际的内存泄漏。尝试使用strace
运行程序,并确保计时器已销毁。如果是这样,那么留下任何内部存储器都是实现质量的问题,而不是程序中的潜在错误。
顺便说一下,另一个好的测试方法:创建10或100个计时器,然后将它们全部销毁,并比较“泄漏”的内存量。如果它与一个相同,我会说没有问题。