What does debuggable true do?

I understand that when debuggable is set to true, you are able to debug using Android Studio. However, it does more than that, such as setting the COCOS2D_DEBUG to something greater than 0 (I don’t know where it does this).

I have a project that has a weird issue that only occurs when debuggable is set to false. It’s not quite a crash, but it really messes up the gameplay. I am hoping that if I can understand what “debuggable true” does, I can fix my code. At this point I can’t continue testing as I cannot upload a debuggable version to the Google Play store.

What are the entire differences between “debuggable true/false” and where do these differences occur?