在没有 valgrind 抱怨的情况下不干净地退出 C 子进程?
Uncleanly exiting from C child process without valgrind complaining?
我有一个包含一个主进程的 C 程序。
偶尔fork()
用于创建并行子进程。这些只存在几秒钟。
我的主进程顺利退出,取消分配所有 malloc()
的内存。
我希望子进程在不取消分配所有(父进程的)malloc()
内存的情况下死掉,因为我没有让他们这样做的干净方法。
但是,每次子进程 exit(0)
s 时,Valgrind 都会大声抱怨。
我正在使用命令:
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
.
我有一个包含一个主进程的 C 程序。
偶尔fork()
用于创建并行子进程。这些只存在几秒钟。
我的主进程顺利退出,取消分配所有 malloc()
的内存。
我希望子进程在不取消分配所有(父进程的)malloc()
内存的情况下死掉,因为我没有让他们这样做的干净方法。
但是,每次子进程 exit(0)
s 时,Valgrind 都会大声抱怨。
我正在使用命令:
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
.