Valgrind reports an error in getDisplayFromScreen


I am running a test suite on OS X 10.9.5, built with XCode 5.1.1, Base SDK 10.7., settings from IntroJucer set to Debug, with Project Type "Application (Non-GUI)", no optimisation (-O0), C++ Library "LLVM libc++" and with the latest version of Juce.

When I am now running it, valgrind reports this error message:

jakobs-mbp:~ jakob$ valgrind --track-origins=yes /Users/<path>/x86_64/MidiShaperTests
==1106== Memcheck, a memory error detector
==1106== Copyright © 2002-2015, and GNU GPL’d, by Julian Seward et al.
==1106== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==1106== Command: /Users/jakob/Library/Developer/Xcode/DerivedData/solution-ffzgtvfavooufpfjshutorfycsyy/Build/Intermediates/\ (Full).build/Objects-normal/x86_64/MidiShaperTests
–1106-- run: /usr/bin/dsymutil "/Users/<path>/x86_64/MidiShaperTests"
Assertion failed: (!“Unknown operand”), function LinkLocation, file /SourceCache/dwarf_utilities/dwarf_utilities-114/source/DWARFdSYM.cpp, line 1704.
JUCE v4.0.2

==1106== Conditional jump or move depends on uninitialised value(s)
==1106==    at 0x6A16F65: _LSApplicationCheckIn (in /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices)
==1106==    by 0x6E89BC0: _RegisterApplication (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices)
==1106==    by 0x6E88558: GetCurrentProcess (in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices)
==1106==    by 0x3A40B6E: MenuBarInstance::GetAggregateUIMode(unsigned int*, unsigned int*) (in /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox)
==1106==    by 0x508A2: _dockRect (in /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
==1106==    by 0x699B1: _NXVisibleRectForScreen (in /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
==1106==    by 0x6993E: -[NSScreen visibleFrame] (in /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
==1106==    by 0x1004BD57F: juce::getDisplayFromScreen(NSScreen*, double&, float) (in /Users/<path>/x86_64/MidiShaperTests)
==1106==    by 0x10040EE61: juce::desktop::Displays::findDisplays(float) (in /Users/<path>/x86_64/MidiShaperTests)
==1106==    by 0x10040E89C: juce::desktop::Displays::init(juce::Desktop&) (in /Users/<path>/x86_64/MidiShaperTests)
==1106==    by 0x10040E83C: juce::desktop::Displays::Displays(juce::Desktop&) (in /Users/<path>/x86_64/MidiShaperTests)
==1106==    by 0x10040D8CC: juce::desktop::Displays::Displays(juce::Desktop&) (in /Users/<path>/x86_64/MidiShaperTests)
==1106==  Uninitialised value was created by a stack allocation
==1106==    at 0x6A16A93: _LSApplicationCheckIn (in /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices)

(juce::Desktop::Displays::Displays(juce::Desktop&) gets called after I am adding a first "Component" within a class that is derived from "AudioProcessorEditor".)

Is this something we need to worry about or is it more likely a false positive?


Very odd - the calling code looks fine to me, and the error seems to be deep inside Apple's libraries during the call to [NSScreen visible]. The NSScreen object involved should be OK since it was just provided by the system, so my guess is that it's a false positive.


Thank you Jules for looking into it! I am just hunting a weird crash bug I am having in a (lucky not yet released) plugin update, so I am beginning to helplessly look for every possible issue..