服务器进程上的valgrind

标签 valgrind traffic

嗨,我是 valgrind 的新手。我知道如何从命令行对可执行文件运行 valgrind。但是如何在 apache/myqld/traffic 服务器等服务器进程上运行 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 的选项以获取内存泄漏报告。

关于服务器进程上的valgrind,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2491383/

相关文章:

linux - 使用 Unix TC 整形高带宽流量

macOS Sierra 上的 Valgrind

c++ - 在 C++ 中跟踪函数调用的方法

c++ - valgrind 和 openmp,仍然可以访问并可能丢失,这很糟糕吗?

c - 调用 "atoi"函数后,代码导致段错误

security - 如何自动检测来自 1 个 IP 的高 [数据输出](Windows azure 网站)

c - 套接字对端是否应该在应用程序退出之前关闭?

c# - 如何在 Windows 中(在用户模式下)限制应用程序域级别的带宽?

javascript - 将交通灯图像更改为后续颜色错误的功能