瓦尔格林德挂着没有输出

Valgrind is hanging with no output

本文关键字:输出 林德挂      更新时间:2023-10-16

对于我正在尝试为我一直在处理的类之一编写代码的方法,我正在尝试从文件中读取双精度值,并使用这些数值在程序内动态设置一些数组。

我想检查一下,至少在我来的时候,我是否有内存泄漏。但是,启动valgrind只是挂起,由于CPU负载很高,valgrind似乎工作得相当繁重,但是即使我已经等待了一段时间,也不会产生输出。我已经翻阅了手册的页面,但找不到有用的东西。我编译了 valgrind-3.8.0 并立即使用它。我正在以我一直做的方式发射它

valgrind --leak-check=yes --log-file=valgrind_log ./binary_to_execute args_if_any

我也无法在谷歌搜索上找到对这个悬挂问题有用的 sth。关于这种悬挂行为的原因有什么想法吗?

编辑 1:这是应用程序的时间命令的定时输出

47740

real    0m1.299s
user    0m1.116s
sys     0m0.176s

编辑2:这是一个链接,与我遇到的问题或多或少相同,

有类似问题的消息

编辑3:我注意到很有趣,如果我尝试读取的文件大小很大,则会出现此问题,如果文件大小相对较小,则不会发生此挂起,这对我来说也很奇怪。

一个大文件表明要做更多的工作。所以瓦尔格林德需要更多的时间。瓦尔格林德真的慢。

您可以使用世界上最好的调试器轻松调试它:printf()(只是半开玩笑。只需在主循环的每次迭代之前或之后打印一些内容。如果它没有出现,瓦尔格林德真的挂在某个地方。仔细放置 printf() 语句应该揭示它挂起的确切位置(如果它确实挂起而不是缓慢)。

  1. 也许你的程序主线程没有退出
  2. 等待瓦尔格林德出口