Hi Liming,
  For question1: We might declaim some variables/functions only used in DEBUG mode and those are necessary variables/functions for debugging but will trigger warning message in RELEASE build.

  For question2: Yes