我有一个由一个主要进程组成的C程序。
有时fork()
用于创建并行子进程。这些仅存在几秒钟。
我的主进程很好地退出,未分配其所有malloc()
的内存。
[我希望子进程在不取消分配其所有(父级)malloc()
的内存的情况下死亡,因为我没有干净的方法让他们这样做。
但是,Valgrind每次子进程exit(0)
时都会大声抱怨。
我正在使用命令:
valgrind --leak-check=yes --leak-check=full --show-leak-kinds=all --trace-children=no ./my_program
我已经尝试过--trace-children=no
。 (它应该是默认值,但是Valgrind总是跟踪子进程。)
我是否可以在代码中或通过开关进行某些操作,以使Valgrind不在子进程上运行?
事实证明,--trace-children=no
仅适用于后跟fork()
的exec()
。
我需要的是:--child-silent-after-fork=yes
。