c++ Valgrind文件描述符



valgrind可以检测代码中的错误,即使在使用valgrind启动程序时,在执行测试用例期间没有命中错误的代码段?

我的问题是,如果valgrind可以检测代码中的问题,例如与内存泄漏或未关闭的文件描述符相关的问题,即使具有此类错误的那部分代码仅在特定场景中执行,而在使用valgrind运行程序时不会执行。

不,valgrind是一个'运行时内存检查器',它不关心任何没有运行的代码。

我认为即使我们不知道其中的机制,我们可以做一些小实验来验证我们的假设。

#include <malloc.h>
int main(int argc, char ** argv)
{
if (argc > 1){
printf("Let's leak some memory chunk.n");
char * a = malloc(100);
}
return 0;
}

然后检查valgrind ./a.outvalgrind ./a.out 1,就这样。:)

最新更新