gpt4 book ai didi

c++ - 当应用程序成为守护进程时,Valgrind 退出

转载 作者:太空宇宙 更新时间:2023-11-04 04:23:33 24 4
gpt4 key购买 nike

我有一个 C++ 应用程序,它是一个 Linux 守护进程(我使用单个 fork 来使其成为守护进程),基于此守护进程示例中的代码 http://www.itp.uzh.ch/~dpotter/howto/daemonize 。我正在尝试使用 valgrind 查找内存泄漏:

/usr/bin/valgrind.bin --suppressions=/usr/lib/valgrind/debian-libc6-dbg.supp --tool=memcheck --child-silent-after-fork=no --trace-children=yes --leak-check=full --show-reachable=yes /usr/sbin/<my daemon>

但是 valgrind 在初始进程终止后立即退出,而应用程序仍在子进程中运行。如果我注释掉退出初始进程的代码,那么 valgrind 会继续工作。但这不是一个干净的解决方案。没有它我怎样才能让 valgrind 继续工作?

最佳答案

Valgrind 的常见问题解答明确指出它不能附加到已经运行的进程。我想他们所有的仪器设置也会在 fork() 上丢失。
他们确实提到了一种听起来非常复杂的解决方法( here ),但我认为它会增加更多不必要的复杂性,而不仅仅是不进行守护进程。

关于c++ - 当应用程序成为守护进程时,Valgrind 退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11114778/

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