簡體   English   中英

未初始化的值-Valgrind

[英]uninitialized value - 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)

有什么建議嗎?

這很有用: 優勝美地和Valgrind雖然在過去的OS X發行周期中可能是Valgrind在獲得合理的功能支持之前花了一段時間,但由於在前期的大量工作,Valgrind主干中已經提供了基本的OS X 10.10支持。發行的優勝美地– Dave Qorashi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM