为什么Valgrind memcheck在我的Ruby程序上运行了很多次?

为什么Valgrind memcheck在我的Ruby程序上运行了很多次?,ruby,valgrind,Ruby,Valgrind,当我使用以下命令运行Ruby程序时: valgrind --tool=memcheck ruby hello.rb 我每次得到堆、泄漏和错误摘要的输出正好四次 我的Ruby程序所做的就是加载一个包含10000个字符的文本文件。当我使用相同的命令运行类似的Python程序时,Memcheck工作得很好。为什么我得到四个输出?其中一些是否指示使用的内存量正确?我正在为我的硕士论文测量内存消耗,所以我真的需要找出是什么导致了这一点 谢谢 默认情况下,valgrind不“遵循”子流程(即不遵循 调用

当我使用以下命令运行Ruby程序时:

valgrind --tool=memcheck ruby hello.rb
我每次得到堆、泄漏和错误摘要的输出正好四次

我的Ruby程序所做的就是加载一个包含10000个字符的文本文件。当我使用相同的命令运行类似的Python程序时,Memcheck工作得很好。为什么我得到四个输出?其中一些是否指示使用的内存量正确?我正在为我的硕士论文测量内存消耗,所以我真的需要找出是什么导致了这一点


谢谢

默认情况下,valgrind不“遵循”子流程(即不遵循 调用exec系统调用的分叉子级)

但默认情况下,不执行的分叉子级将输出一些结果。 使用--child silent after fork=yes应该使forking的输出不是
执行子进程消失。

默认情况下,valgrind不“遵循”子进程(即不遵循 调用exec系统调用的分叉子级)

但默认情况下,不执行的分叉子级将输出一些结果。 使用--child silent after fork=yes应该使forking的输出不是
正在执行child消失。

这不起作用,它只是在给出堆、泄漏和错误摘要的任何输出之前暂停。在这个阶段,这看起来像是valgrind和ruby的意外行为或交互。在valgrind中启用更多调试(例如-v-v-v-d-d-d--trace syscalls=yes),并报告valgrind bugzilla上的错误,附加输出。感谢它没有起作用,它只是在给我任何关于堆、泄漏和错误摘要的输出之前暂停了。在这个阶段,这看起来像是valgrind和ruby的意外行为或交互。在valgrind中启用更多调试(例如-v-v-v-d-d-d--trace syscalls=yes),并报告valgrind bugzilla上的错误,附加输出。谢谢