【问题标题】:valgrind heap summary error on macmac上的valgrind堆摘要错误
【发布时间】:2017-09-26 16:41:22
【问题描述】:

我的 valgrind 总是说我分配了很多东西,即使我没有。我刚刚做了一个返回 0 并运行 valgrind 的 main,它返回了这个。我刚刚重置了我的电脑。

我不知道这是否有任何区别,但我使用的是 mac Yosemite,但它也发生在 El Capitan 上,很快我也会在 Sierra 上进行测试。 我能做些什么来将 valgrind 上的“allocs”和“肯定丢失”归零吗?有了这样的日志,我永远不知道我是否正确地释放了所有东西

即使我不包含任何库也会发生这种情况

==11011== HEAP SUMMARY:
==11011==     in use at exit: 34,527 bytes in 414 blocks
==11011==   total heap usage: 514 allocs, 100 frees, 41,503 bytes 
allocated
==11011== 
==11011== LEAK SUMMARY:
==11011==    definitely lost: 16 bytes in 1 blocks
==11011==    indirectly lost: 0 bytes in 0 blocks
==11011==      possibly lost: 0 bytes in 0 blocks
==11011==    still reachable: 0 bytes in 0 blocks
==11011==         suppressed: 34,511 bytes in 413 blocks

【问题讨论】:

标签: c macos valgrind


【解决方案1】:

我不会担心这个 - 它是少量并且可能与系统有关。专注于该工具在您的代码中识别的问题。

如果您打开所有内存泄漏选项,您可能会获得更多详细信息,例如

--memcheck:leak-check=full --memcheck:show-reachable=yes
--memcheck:show-possibly-lost=yes --memcheck:track-origins=yes --verbose

【讨论】:

  • 与其说是丢失的内存量,不如说是能够监控自己的内存消耗和潜在的内存泄漏。我认为他想要一个干净的基础是正确的,他将在此基础上编写代码。
  • 没错,问题是这样我就不会知道我分配的是否比我释放的多,诸如此类
  • 实际上你能做些什么呢?让苹果改变 macOS?不见得。在 Valgrind 中进行修复。可能是。只要这是恒定的并且很小,那就不用担心了。
  • 设置 mach 调用可能会产生开销,或者可能与它们的动态链接器有关。即使你不使用任何库,它也会使用 libsystem,这就是厨房水槽,包括 libc 以及 OS X 上的许多其他东西。
  • 是的,我使用 --leak-check=full 运行了 valgrind,你是对的,Lucas Holt。它在库系统上。你知道我能做些什么吗?
猜你喜欢
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 2016-05-20
  • 2017-11-13
  • 1970-01-01
  • 2016-08-07
  • 1970-01-01
相关资源
最近更新 更多