我发现在 Linux Mint 中,命令valgrind less
输出
still reachable: 22,499 bytes in 31 blocks
这是一个错误吗?是否应该向开发商报告此类问题?
答案1
被 Valgrind 识别为“仍然可访问”的内存是已分配的内存,不是泄漏,但在程序退出前未释放。在许多情况下,这很好,开发人员依靠程序退出来进行清理。
仅当该值非常大,或者随着时间的推移以不符合预期的方式增长时才值得报告(例如在less
这种情况下,远大于所显示数据的大小)。
如果 Valgrind 将大量内存识别为“肯定丢失”,那就是另一回事了,并且可能值得报告 - 这在长时间运行的程序中尤其成问题(这不是less
常见用法)。