Ich versuchte Valgrind 3.13 und 3.14 (auf MacOs 10.12.6) in sehr einfachen Projekt zu laufen, aber ich habe seltsame Fehler, wer ich nie zuvor in meinem Linux.Valgrind macOs und Fehler Syscall Param msg-> desc.port.name zeigt auf nicht initialisierte Byte
Sehr einfaches C-Programm
main.c
:int main() { return (0); }
Compilation mit
cc
:$> cc main.c
Führen mein einfaches Programm mit
valgrind
:$> valgrind ./a.out
Ausgabe von valgrind:
==12768== Memcheck, a memory error detector ==12768== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==12768== Using Valgrind-3.14.0.SVN and LibVEX; rerun with -h for copyright info ==12768== Command: ./a.out ==12768== ==12768== Syscall param msg->desc.port.name points to uninitialised byte(s) ==12768== at 0x10049434A: mach_msg_trap (in /usr/lib/system/libsystem_kernel.dylib) ==12768== by 0x100493796: mach_msg (in /usr/lib/system/libsystem_kernel.dylib) ==12768== by 0x10048D485: task_set_special_port (in /usr/lib/system/libsystem_kernel.dylib) ==12768== by 0x10062910E: _os_trace_create_debug_control_port (in /usr/lib/system/libsystem_trace.dylib) ==12768== by 0x100629458: _libtrace_init (in /usr/lib/system/libsystem_trace.dylib) ==12768== by 0x1001599DF: libSystem_initializer (in /usr/lib/libSystem.B.dylib) ==12768== by 0x100017A1A: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld) ==12768== by 0x100017C1D: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld) ==12768== by 0x1000134A9: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld) ==12768== by 0x100013440: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld) ==12768== by 0x100012523: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld) ==12768== by 0x1000125B8: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld) ==12768== Address 0x10488ac6c is on thread 1's stack ==12768== in frame #2, created by task_set_special_port (???:) ==12768== Uninitialised value was created by a stack allocation ==12768== at 0x1006290A6: _os_trace_create_debug_control_port (in /usr/lib/system/libsystem_trace.dylib) ==12768== ==12768== ==12768== HEAP SUMMARY: ==12768== in use at exit: 18,144 bytes in 162 blocks ==12768== total heap usage: 178 allocs, 16 frees, 24,288 bytes allocated ==12768== ==12768== LEAK SUMMARY: ==12768== definitely lost: 3,456 bytes in 54 blocks ==12768== indirectly lost: 0 bytes in 0 blocks ==12768== possibly lost: 72 bytes in 3 blocks ==12768== still reachable: 200 bytes in 6 blocks ==12768== suppressed: 14,416 bytes in 99 blocks ==12768== Rerun with --leak-check=full to see details of leaked memory ==12768== ==12768== For counts of detected and suppressed errors, rerun with: -v ==12768== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 4 from 4)
ich diesen Teil der Spur nicht verstehen:
==12768== Syscall param msg->desc.port.name points to uninitialised byte(s) ==12768== at 0x10049434A: mach_msg_trap (in /usr/lib/system/libsystem_kernel.dylib) ==12768== by 0x100493796: mach_msg (in /usr/lib/system/libsystem_kernel.dylib) ==12768== by 0x10048D485: task_set_special_port (in /usr/lib/system/libsystem_kernel.dylib) ==12768== by 0x10062910E: _os_trace_create_debug_control_port (in /usr/lib/system/libsystem_trace.dylib) ==12768== by 0x100629458: _libtrace_init (in /usr/lib/system/libsystem_trace.dylib) ==12768== by 0x1001599DF: libSystem_initializer (in /usr/lib/libSystem.B.dylib) ==12768== by 0x100017A1A: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld) ==12768== by 0x100017C1D: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld) ==12768== by 0x1000134A9: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld) ==12768== by 0x100013440: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld) ==12768== by 0x100012523: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld) ==12768== by 0x1000125B8: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld) ==12768== Address 0x10488ac6c is on thread 1's stack ==12768== in frame #2, created by task_set_special_port (???:) ==12768== Uninitialised value was created by a stack allocation ==12768== at 0x1006290A6: _os_trace_create_debug_control_port (in /usr/lib/system/libsystem_trace.dylib)
Ich verstehe nicht, warum die Haufen Zusammenfassung so groß (178 Allocs ist, 16 frees , 24288 Bytes zugewiesen) meiner einfachen Rückkehr (0); Programm.
Ich habe das gleiche Problem (auf gleiche Version von macOS 10.12.6); es gibt eine ganze Menge mehr Nachrichten zurück, wenn Sie '--leak-check = full' enthalten – Nibor
Ich habe die gleiche Frage. – theoden
Ich erhalte den gleichen Fehler unter Mac OS X 10.12. Ich denke, dass es einen Patch dafür geben könnte? Siehe [dieser Fehler] (https://www.mail-archive.com/[email protected]/msg134624.html) – Petergavinkin