C 关于计时器创建(内存泄漏)

C 关于计时器创建(内存泄漏),c,linux,timer,C,Linux,Timer,我正在开发一个内存泄漏工具,问题是:这个工具应该只捕获测试程序中的内存泄漏,但实际发生的是,我使用API timer_create(POSIX)创建了一个计时器,这不知何故导致了144+56字节的泄漏 你知道怎么阻止它吗?我如何确保来自timer_create的所有malloc请求都没有被记录 我使用的是计时器线程函数方法,而不是信号。SIGEV_THREAD我在您报告的内存泄漏中没有看到任何N,只是一个小常量,因此我最初的猜测是,这纯粹是设置计时器线程系统的一次性开销,而不是实际的内存泄漏。尝

我正在开发一个内存泄漏工具,问题是:这个工具应该只捕获测试程序中的内存泄漏,但实际发生的是,我使用API timer_create(POSIX)创建了一个计时器,这不知何故导致了144+56字节的泄漏

你知道怎么阻止它吗?我如何确保来自timer_create的所有malloc请求都没有被记录


我使用的是计时器线程函数方法,而不是信号。SIGEV_THREAD

我在您报告的内存泄漏中没有看到任何
N
,只是一个小常量,因此我最初的猜测是,这纯粹是设置计时器线程系统的一次性开销,而不是实际的内存泄漏。尝试使用
strace
运行程序,并确保计时器已销毁。如果是这样,剩下的内存是实现质量的问题,而不是程序中的潜在错误


顺便说一下,另一种很好的测试方法是:创建10或100个计时器,然后全部销毁,并比较“泄漏”的内存量。如果与一个相同,我会说没有问题。

你知道吗,已经有
valgrind
来检测内存泄漏?它能检测到ARM和mips目标上的内存泄漏吗?@ThiefMaster:可能有一个比桌面更大的世界,所以请不要只考虑x86(旧桌面):-)@kingsmaster1:内存泄漏是在每次创建计时器时发生的还是仅在第一次发生的?一些运行时用于以“惰性”的方式进行一些动态分配。在您的情况下,“计时器”子系统可能会在第一次访问时分配一些内容,检查程序会将其视为“泄漏”。再见@kingsmaster1:
valgrind
支持ARM,但不支持mips()。在这个问题中建议使用很多MIPs工具: