我在一个示例守护程序上运行了 valgrind。父进程在分配了 1000B 的块后退出,但在后台运行的子进程每两秒通过 malloc 在堆上分配 200B 的内存。
我的问题是:valgrind 是在实际处理器上还是在合成 CPU 上执行程序?
它是在实际堆上还是在不存在的合成 RAM 上分配内存?
因为我让程序运行了相当长的时间,以至于孩子在堆上分配了一些 2GB 的内存。在 massif 上实现程序时,我得到了一个父级的输出文件,而在终止守护进程时,我得到了另一个 massif.out。对于显示堆上内存分配的孩子。