在C+上运行valgrind+;模块托管在apache上 我在Apache服务器上托管了C++库(服务器类)。我想在上面运行valgrind。所以请指导我怎么做

在C+上运行valgrind+;模块托管在apache上 我在Apache服务器上托管了C++库(服务器类)。我想在上面运行valgrind。所以请指导我怎么做,c++,apache,valgrind,C++,Apache,Valgrind,我试过服从命令。这看起来很好,因为我看不到ValGRND检查我在Apache上托管的C++模块。请注意,已经提供了所有必需的模块名详细信息,下面的命令是我在启动apache服务器时运行valgrind所用的命令 valgrind--leak check=full--show reachable=yes--tool=memcheck--log file=val.log/etc/init.d/httpd24-httpd start valgrind--leak check=full--show re

我试过服从命令。这看起来很好,因为我看不到ValGRND检查我在Apache上托管的C++模块。请注意,已经提供了所有必需的模块名详细信息,下面的命令是我在启动apache服务器时运行valgrind所用的命令

valgrind--leak check=full--show reachable=yes--tool=memcheck--log file=val.log/etc/init.d/httpd24-httpd start

valgrind--leak check=full--show reachable=yes--tool=memcheck--log file=val.log/etc/init.d/httpd24-httpd start

Valgrind必须使用二进制文件执行以进行检查`这里的httpd24 httpd’只是一个在后台模式下启动Apache的包装器。这就是为什么你开始valgrind的方式不会给你任何启示

为了能够完成任务,您应该在前台启动Apache。我对Apache不太熟悉,但您的命令行看起来应该是这样的:

valgrind --leak-check=full --show-reachable=yes --tool=memcheck --log-file=val.log /usr/sbin/httpd -DFOREGROUND

这里的“/usr/sbin/httpd”是Apache的二进制文件。

Hi。谢谢你的回复。我试过你的建议,但还是不行。这里的主要问题是valgrind要到我想要它分析的图书馆才能到达。它只是给我apache二进制文件的数据。@Nishant,尝试添加
--trace children=yes
valgrind选项。谢谢大家的回复,我想现在我可以通过使用下面的conf文件解决我的问题了。对@nebd的建议稍加修改就奏效了。valgrind--leak check=full--tool=memcheck--error limit=no--log file=val.log/opt/rh/httpd24/root/usr/sbin/httpd-f httpd.conf-X