嗨,我是 valgrind 的新手。我知道如何从命令行对可执行文件运行 valgrind。但是如何在 apache/myqld/traffic server 等服务器进程上运行 valgrind ..
我想在流量服务器(http://incubator.apache.org/projects/trafficserver.html)上运行 valgrind 来检测我编写的插件中发生的一些内存泄漏。
有什么建议么 ?
谢谢,猪
嗨,我是 valgrind 的新手。我知道如何从命令行对可执行文件运行 valgrind。但是如何在 apache/myqld/traffic server 等服务器进程上运行 valgrind ..
我想在流量服务器(http://incubator.apache.org/projects/trafficserver.html)上运行 valgrind 来检测我编写的插件中发生的一些内存泄漏。
有什么建议么 ?
谢谢,猪
你必须在 Valgrind 的控制下启动服务器。只需使用服务器的正常启动命令,并在其前面加上valgrind
.
Valgrind 将附加到您的主要“服务器”进程产生的每个进程。当每个线程或进程结束时,Valgrind 将输出其分析,因此我建议将其通过管道传输到文件(不确定它是在 stderr 还是 stdout 上输出。)
如果您通常的启动命令是/usr/local/mysql/bin/mysqld
,请改为使用 启动服务器valgrind /usr/local/mysql/bin/mysqld
。
如果您通常使用脚本(如/etc/init.d/mysql start
)启动服务,您可能需要在脚本内部查看脚本执行的实际命令,并运行该脚本而不是脚本。
不要忘记将--leak-check=full
选项传递给 valgrind 以获取内存泄漏报告。