I have just discovered the importance of the JUCE_DEBUG macro, especially when it is set in the juce library and not in your own code ! Since AudioProcessor has an optional member “changingParam” that is added only in juce debug, one may encounter strange behaviours.
Of course, this was my fault, but maybe would it be a good feature to check that one is not trying to link a program compiled without JUCE_DEBUG with a juce lib compiled with JUCE_DEBUG (by using some different names for some functions causing a link error if the debug flag does not match) ? That’s just an idea
On the same topic, I think more control on wether JUCE_DEBUG is set or not would be great. For example on macos it is set if NDEBUG is not defined. But in some situations, I would like to keep my assert (so no NDEBUG), and no JUCE_DEBUG. This is also not completely consistent with the linux part, where JUCE_DEBUG is set if the _DEBUG macro is set (instead of NDEBUG)