Umu*_*bak 8 c++ valgrind memory-management
对于我正在尝试为我正在处理的类之一编写代码的方法,我试图从文件中读取double值并使用这些数值动态设置程序内的一些数组.
我想检查一下,至少到了我来的地步,我是否有内存泄漏.然而,由于cpu加载很高,启动valgrind只是挂起,valgrind似乎工作得相当多,但即使我已经等待一段时间也没有产生输出.我已经翻阅了手册的页面,但找不到有用的东西.我编译了valgrind-3.8.0并立即使用它.而且我按照我一直以来的方式解雇它
valgrind --leak-check=yes --log-file=valgrind_log ./binary_to_execute args_if_any
Run Code Online (Sandbox Code Playgroud)
我无法在谷歌搜索中找到这个悬而未决的问题.关于这种悬挂行为的原因有什么想法吗?
编辑1:这是应用程序的time命令的定时输出
47740
real 0m1.299s
user 0m1.116s
sys 0m0.176s
Run Code Online (Sandbox Code Playgroud)
编辑2:这是一个与我遇到的问题大致相同的链接,
编辑3:我注意到有趣,如果我试图读取的文件大小很大,则会出现此问题,如果文件的大小相对较小,则不会发生此挂起,这对我来说也很奇怪.
一个大文件表明还有更多工作要做.所以valgrind需要更多时间.Valgrind真的很慢.
您可以使用世界上最好的调试器轻松调试它:printf()(只有半开玩笑.)只需在主循环的每次迭代之前或之后打印一些东西.如果它没有出现,valgrind真的挂在某个地方.周到地放置你的printf()语句应该显示它挂起的确切位置(如果它实际挂起而不是慢.)