Valgrind没有输出

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:我注意到有趣,如果我试图读取的文件大小很大,则会出现此问题,如果文件的大小相对较小,则不会发生此挂起,这对我来说也很奇怪.

Nik*_* C. 6

一个大文件表明还有更多工作要做.所以valgrind需要更多时间.Valgrind真的慢.

您可以使用世界上最好的调试器轻松调试它:printf()(只有半开玩笑.)只需在主循环的每次迭代之前或之后打印一些东西.如果它没有出现,valgrind真的挂在某个地方.周到地放置你的printf()语句应该显示它挂起的确切位置(如果它实际挂起而不是慢.)


chl*_*aws -1

  1. 也许你的程序主线程没有退出
  2. 等待 valgrind 退出