2015-03-08 8 views
1

У меня странная проблема с моим Valgrind на Yosemite. Вот моя простая программа:неинициализированное значение - 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) 

Любые советы?

+0

Это, кажется, ошибка в вашей библиотеке c или в valigrind для вашей платформы. –

+0

Я не знал, что у Вальгринда была поддержка Йосемити; В последний раз я слышал, что [последняя версия поддержки] (http://valgrind.org/downloads/current.html) для OS X была Mavericks. Это недавно изменилось? (спрашивает парня с Йосемити 10.10.2 на его MBAir). – WhozCraig

+0

@WhozCraig, это интересный момент, когда я переустанавливаю ** glibc ** из-за обновлений безопасности. Valgrind начинает иметь именно такое поведение. Пока я не перекомпилирую его, если он поддерживает новый ** glibc **, который часто бывает не так, и тогда мне нужно ждать новой публикации valgrind. –

ответ

0

Это полезно: Yosemite and Valgrind Несмотря на то, что, возможно, это было в прошлых циклах выпуска OS X, которые Valgrind занимал период времени до достижения разумной поддержки функций, базовая поддержка OS X 10.10 уже доступна в багажнике Valgrind из-за значительной работы на предварительном выпуске Yosemite - Dave Qorashi