c - 在没有 valgrind 抱怨的情况下不干净地退出 C 子进程?
问题描述
我有一个 C 程序,它包含一个主进程。
偶尔fork()
用于创建并行子进程。这些只存在几秒钟。
我的主进程很好地退出,取消分配其所有malloc()
'ed 内存。
我希望子进程在不取消分配所有(父级)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()
s 后跟exec()
.
我需要的是:--child-silent-after-fork=yes
。
推荐阅读
- typescript - 在构造函数中设置的函数中使用 this 的属性时,编译的 JavaScript 代码给出未定义
- ios - react-native run-ios 找不到 iPhone X 模拟器 | XRPackageModel 9.0.omo
- azure - 我需要授予 Azure Function 权限
- ios - 可在同一标签下具有两个结构的 JSON 解码
- rust - 如何返回借用状态以供以后使用的 Rust 闭包?
- html - 如何将子元素拆分为多行/多行?
- c# - 实体框架代码先设置外键名
- c++ - 字符串中的输入验证以及如何使用标志来捕获它
- r - 使用 Facet R 添加线条
- angular - Angular 8 数据绑定停止更新