未初始化的值 - Valgrind
问题描述:
我的Valgrind在优胜美地上遇到了一个奇怪的问题。这是我简单的程序:未初始化的值 - Valgrind
#include <stdio.h>
int main() {
printf("Hello world %d\n", 123);
return 0;
}
编译它,然后使用Valgrind的运行它,我得到以下几点:
==48900== Conditional jump or move depends on uninitialised value(s)
==48900== at 0x1003FBC3F: _platform_memchr$VARIANT$Haswell (in /usr/lib/system/libsystem_platform.dylib)
==48900== by 0x1001EFB96: __sfvwrite (in /usr/lib/system/libsystem_c.dylib)
==48900== by 0x1001F9FE5: __vfprintf (in /usr/lib/system/libsystem_c.dylib)
==48900== by 0x10021F9AE: __v2printf (in /usr/lib/system/libsystem_c.dylib)
==48900== by 0x10021FC80: __xvprintf (in /usr/lib/system/libsystem_c.dylib)
==48900== by 0x1001F5B71: vfprintf_l (in /usr/lib/system/libsystem_c.dylib)
==48900== by 0x1001F39D7: printf (in /usr/lib/system/libsystem_c.dylib)
==48900== by 0x100000F51: main (test.c:3)
==48900==
Hello world 123
==48900==
==48900== HEAP SUMMARY:
==48900== in use at exit: 39,212 bytes in 426 blocks
==48900== total heap usage: 506 allocs, 80 frees, 45,340 bytes allocated
==48900==
==48900== LEAK SUMMARY:
==48900== definitely lost: 16 bytes in 1 blocks
==48900== indirectly lost: 0 bytes in 0 blocks
==48900== possibly lost: 13,058 bytes in 117 blocks
==48900== still reachable: 26,138 bytes in 308 blocks
==48900== suppressed: 0 bytes in 0 blocks
==48900== Rerun with --leak-check=full to see details of leaked memory
==48900==
==48900== For counts of detected and suppressed errors, rerun with: -v
==48900== Use --track-origins=yes to see where uninitialised values come from
==48900== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
有什么建议?
答
这很有用:Yosemite and Valgrind尽管在过去的OS X发布周期中Valgrind花了一段时间才实现合理的功能支持,但基本的OS X 10.10支持已经在Valgrind主干中可用,在预发布优胜美地 - 戴夫Qorashi
这似乎是你的C库或valigrind为您的平台的错误。 – 2015-03-08 17:35:24
我不知道Valgrind还支持优胜美地;最后我听说OS X的[最新版本支持](http://valgrind.org/downloads/current.html)是Mavericks。最近有没有变化? (在他的MBAir上与Yosemite 10.10.2对话)。 – WhozCraig 2015-03-08 17:36:21
@WhozCraig这是一个有趣的一点,当我重新安装** glibc **因为安全更新Valgrind开始具有这种行为。直到我重新编译它,如果它支持新的** glibc **这往往不是这种情况,然后我不得不等待新的valgrind版本。 – 2015-03-08 17:37:39