我的代码中有内存泄漏。堆随着流的触发而增加。 在我的代码中,我有一个while(1)循环,它基本上在队列中等待。 当从webservice触发该流时,将传入消息推入队列,并调用C++中的方法,该方法接受消息并实现图形格式的流。valgrind如何检测内存泄漏
对于每一个触发器,我发现604kb的内存在堆中增加。我需要解决这个问题。
我停止了服务[运行在产品中的二进制文件]。
我开始用的valgrind [给二进制输入到的valgrind]服务
valgrind --log-file=/home/valgrind-output.txt --leak-check=full <service binary>
但而二进制运行时它不显示任何泄漏,只有当我停止了服务,我看到一些泄漏。但是这些是一次性泄漏,一旦我们重新启动服务就会被清除。[binary]。
我在流程启动时有意添加了一个分配,当每个流程被触发时。
int *p = new int[10];
,并添加日志also.I看到日志打印用我每次触发flow.But时候,我看到DONOT给Valgrind的输出文件中的任何泄漏。
我该如何检查每个流程之间的泄漏? valgrind只有在主叫结束后才会泄漏鞋底?如何动态检查我的代码在这种情况下导致了什么泄漏。 如果还有其他探测器需要安装?请提出建议,这会有很大的帮助。谢谢。
>的valgrind --log文件= /家庭/的valgrind-output.txt的--leak检查=全--show-可达= YES -massif servicebinary 的valgrind:坏的选择:-massif 的valgrind:用途 - 有关更多信息,请参阅用户手册。 – user862833 2013-03-01 08:24:30
--tool = massif也是在创建日志文件之后使用ms_print massif.log> massifout.txt; – 2013-03-01 08:27:29
不,这是行不通的 – user862833 2013-03-01 13:51:05