Yot*_*tam 5 c++ valgrind memory-leaks
我valgrind用这些结果运行了我的代码:
== 4492 == Memcheck,内存错误检测器
== 4492 ==版权所有(C)2002-2009,以及GNU GPL'd,作者:Julian Seward等.
== 4492 ==使用Valgrind-3.5.0和LibVEX; 用-h重新运行版权信息
== 4492 ==命令:./ mem
== 4492 ==父PID:4455
== 4492 ==
== 4492 ==
== 4492 == HEAP SUMMARY:
== 4492 == in在退出处使用:0个块中的0个字节
== 4492 ==总堆使用量:19,595,342个分配,19,595,342个释放,27,194,270个字节分配== 4492 ==
== 4492 ==所有堆块都被释放 - 没有泄漏可能
== 4492 ==
== 4492 ==对于检测到的和抑制的错误计数,请重新运行:-v
== 4492 ==错误摘要:0个上下文中的0个错误(抑制:4个中的4个)
但是,在代码运行时,我看到程序使用的内存小幅稳定增加.我对这个结果有多确定?
我跑步valgrind使用:
valgrind --track-origins=yes --leak-check=yes
--tool=memcheck --read-var-info=yes --log-file=error.txt`
Run Code Online (Sandbox Code Playgroud)
然后我使用-g和-march=core2标签编译程序.
您需要区分内存泄漏(已分配的内存,但丢失了所有引用)和内存占用(已分配的内存,您保留引用但忘记取消分配).
valgrind无法检测到后者,因为valgrind不知道你不想再使用它了.
要获得有关程序内存使用情况的一些统计信息,可以使用valgrind的massif工具,它将更详细地向您显示内存分配的位置.这可能有助于寻找记忆力.
| 归档时间: |
|
| 查看次数: |
2435 次 |
| 最近记录: |