gpt4 book ai didi

valgrind - 如何告诉 valgrind 只遵循特定的子进程?

转载 作者:行者123 更新时间:2023-12-05 05:22:58 28 4
gpt4 key购买 nike

我使用了“--trace-children=yes”选项,我还使用了“--trace-children-skip=patt1,patt2,...”选项(过滤掉噪音过程)。但它对我来说仍然很慢,我的多进程应用程序超时,并且“--trace-children-skip=”选项变得很长。
我需要类似“--trace-children-only=patt1,patt2,...”的选项,它允许我指定要遵循的特定子进程。我找不到类似的东西。
如何告诉 valgrind 只跟随特定的子进程?

最佳答案

当您在程序上启动 valgrind 时,子进程必须valgrind下“开始运行”。更准确地说,当 parent 开始一个 child 时,它会首先 fork 。使用 valgrind 时运行的“真实”可执行文件是 valgrind 本身。因此, fork valgrind 会提供 valgrind 的副本,而子进程必须以 valgrind 模式“启动”。然后当 child 调用 exec 时,valgrind 检查 --trace-children*决定执行已执行程序的选项,或者更确切地说是 exec 本身 (valgrind)。

所以,如果你有一个启动子 B 的进程 A,它启动子 C,没有办法只为 C 激活 valgrind。

解决方案是在 PATH 中放入隐藏真正 C 的 C 脚本可执行。在此脚本中,执行以下操作: valgrind ... valgrind args .../path/to/the/real/C .... C args ...(当然 C args 可以从脚本参数中恢复)。

关于valgrind - 如何告诉 valgrind 只遵循特定的子进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39156112/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com