当使用valgrind时,有一个部分用于仍然可以到达的泄漏,但最终应该由OS清理。有没有这种情况会出现问题?我正在考虑使用线程的案例可能是操作系统无法清除子进程中仍然可到达的泄漏,直到主进程完成,但我不确定这是否也是可能的情况。
基本上是存在一个问题,即不释放在执行结束(程序退出)之前使用的内存?
当然。假设您在Valgrind下运行的程序是某个远程请求处理程序的测试用例。在生产中,服务器将处理许多请求;概率仅受系统总运行时间的限制。所以每个请求必须清理它的垃圾。
一些测试用例不会模拟服务器的生命周期内存使用,但它们足以检验没有请求留下垃圾的假设。如果留下垃圾,那么无论是否还有指向垃圾的指针都会发生错误。 Valgrind可以帮助你解决这个问题。