我正在一个生成数千个其他线程的程序上运行 valgrind memcheck。
其他线程不会产生错误,我不关心它们发生了什么。
但是,Valgrind 坚持在每次产生新线程时在/tmp 中打开一个命名管道。这不仅浪费,而且实际上破坏了 valgrind。有时 valgrind 不会自行清理,然后具有相同 pid 的 future child (稍后激活)无法产生,因为 valgrind 无法创建具有正确名称的管道(它已经存在)。
我怎样才能阻止 Valgrind 制作所有这些管道!?!
编辑: 我已经尝试过的标志:
--child-silent-after-fork=yes
还有我已经排除的事情:
--track-children=no(默认值为no)。
最佳答案
很抱歉回答我自己的问题。仅用于文档目的。
带着旗帜奔跑:
--vgdb=no
这在手册页中没有正确记录,因为它没有告诉您它会在没有标志的情况下到处喷出管道,但这就是它这样做的原因。
关于c++ - 如何防止 Valgrind 为每个新线程启动嵌入式 gdbservers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12960485/