从C子进程中干净退出而没有valgrind抱怨?

问题描述 投票:0回答:1

我有一个由一个主要进程组成的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不在子进程上运行?

c fork valgrind
1个回答
0
投票

事实证明,--trace-children=no仅适用于后跟fork()exec()

我需要的是:--child-silent-after-fork=yes

© www.soinside.com 2019 - 2024. All rights reserved.