Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Valgrind在应用程序被后台监控时退出 我有一个C++应用程序,它是一个Linux守护进程(我使用一个叉来做守护进程),这个代码来自这个守护进程例子。我试图通过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> /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/_C++_Linux_Daemon_Valgrind - Fatal编程技术网

Valgrind在应用程序被后台监控时退出 我有一个C++应用程序,它是一个Linux守护进程(我使用一个叉来做守护进程),这个代码来自这个守护进程例子。我试图通过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> /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/

Valgrind在应用程序被后台监控时退出 我有一个C++应用程序,它是一个Linux守护进程(我使用一个叉来做守护进程),这个代码来自这个守护进程例子。我试图通过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> /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/,c++,linux,daemon,valgrind,C++,Linux,Daemon,Valgrind,但valgrind在初始进程结束后立即退出,而应用程序仍在子进程中工作。 若我注释掉退出初始过程的代码,那个么valgrind将继续工作。但这不是一个干净的解决方案。 如果没有它,我如何让valgrind继续工作?valgrind的常见问题解答明确指出,它不能附加到已经运行的流程。我想他们在fork()上的所有仪器设置也都丢失了。 他们确实提到了一个听起来非常复杂的解决方法(),但我认为这会比不进行后台监控增加更多不必要的复杂性。许多后台程序类型的程序都有命令行选项来告诉它是否应该“后台监控”。

但valgrind在初始进程结束后立即退出,而应用程序仍在子进程中工作。 若我注释掉退出初始过程的代码,那个么valgrind将继续工作。但这不是一个干净的解决方案。
如果没有它,我如何让valgrind继续工作?

valgrind的常见问题解答明确指出,它不能附加到已经运行的流程。我想他们在fork()上的所有仪器设置也都丢失了。

他们确实提到了一个听起来非常复杂的解决方法(),但我认为这会比不进行后台监控增加更多不必要的复杂性。

许多后台程序类型的程序都有命令行选项来告诉它是否应该“后台监控”。也许你们可以做一些类似的事情,比如,让它作为默认的daemonize,但有一个标志告诉它不要这样做?我不喜欢为valgrind创建特殊的应用程序配置,而是想按原样调试应用程序。但是如果这是唯一的方法,那么我会这么做为什么你要使用/usr/bin/vagrind.bin/usr/bin/valgrind是一个包装器脚本,用于设置一些环境变量。