gpt4 book ai didi

c - Valgrind 在空函数中报告 "still reachable"

转载 作者:太空宇宙 更新时间:2023-11-03 23:53:12 27 4
gpt4 key购买 nike

我正在使用 valgrind 检查我的 C 应用程序的内存使用情况。在第一次测试 valgrind 报告之后:

"still reachable: 2,248 bytes in 1 blocks".

我检查了代码,但我无法一眼就找到问题所在。所以我开始评论部分代码,试图找出问题所在。

当我在我的代码中只离开时我感到很震惊

int main(void)
{

};

仍然会收到消息,唯一的区别在于字节数。

我真的很困惑......

完整消息如下:

Running with options : valgrind --leak-check=full --show-reachable=yes

==2557== HEAP SUMMARY:
==2557== in use at exit: 2,248 bytes in 1 blocks
==2557== total heap usage: 362 allocs, 361 frees, 14,579 bytes allocated
==2557==
==2557== 2,248 bytes in 1 blocks are still reachable in loss record 1 of 1
==2557== at 0x4006171: calloc (vg_replace_malloc.c:593)
==2557== by 0x4D72250B: monstartup (in /usr/lib/libc-2.15.so)
==2557== by 0x8048650: __gmon_start__ (in /home/elias/Documents/SL_HTTP/Endosos/bin/Debug/Endosos)
==2557== by 0x4005421: ??? (in /usr/local/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==2557==
==2557== LEAK SUMMARY:
==2557== definitely lost: 0 bytes in 0 blocks
==2557== indirectly lost: 0 bytes in 0 blocks
==2557== possibly lost: 0 bytes in 0 blocks
==2557== still reachable: 2,248 bytes in 1 blocks
==2557== suppressed: 0 bytes in 0 blocks
==2557==
==2557== For counts of detected and suppressed errors, rerun with: -v
==2557== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Profiling timer expired

我在 Fedrora 17 中使用 gcc 4.7.2 进行编译

任何建议将不胜感激。谢谢。

最佳答案

这是完全可以忽略的。在这种情况下,这似乎是通过分析分配的内存(您可能正在编译启用分析的代码或链接到某些启用分析的库)。

在调用 main 之前,您的环境会做很多设置,这些事情可以分配内存。因为他们知道在程序退出之前将使用此内存,所以他们不会在退出时费心 free 它,因为这只会花费时间而没有任何好处。大部分内存将被 valgrind 报告为“仍可访问”,可以安全地忽略。

关于c - Valgrind 在空函数中报告 "still reachable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14565275/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com