Comment déboguer une variable qui est optimisé loin dans la Libération de construire

Je suis à l'aide de VS2010. Ma version debug fonctionne très bien mais ma version conservés sur de s'écraser. Donc, Dans la version en mode j'ai cliqué avec le bouton droit le projet a choisi le Débogage, puis a choisi de démarrer une nouvelle instance. À ce stade, j'ai vu qu'un tableau que j'avais déclaré en tant que tel

int ma[4]= { 1,2,8,4};

N'est jamais initialisée. Toutes les suggestions sur ce qui pourrait se passer.

  • Comment avez-vous vérifier le tableau n'est pas initialisé?
  • En plaçant un point d'arrêt après. J'ai remarqué que le tableau n'avait pas de valeurs. Aussi j'ai essayé de faire quelque chose comme ceci int a = ma[0]; et aucune valeur ne s'affiche.
  • Merci de lire ma réponse ci-dessous. Vous ne devriez pas faire confiance valeurs affichées lors du débogage d'une version validée. Ajouter une instruction d'impression pour vérifier si les valeurs du tableau sont correctement définis et je parie que vous verrez qu'ils sont.
  • Mais bien sûr, l'ajout de l'impression peut rendre son programme de travail à nouveau. D'autres utilisations d'une variable va changer la façon dont il est géré par l'optimiseur. (Il est possible que, selon la façon dont il utilise ma, que l'optimiseur ne l'éliminer entièrement.)
  • Je suis désolé mais je ne comprends pas ce que tu veux dire par votre commentaire
  • Son problème, c'est que le programme se bloque. L'ajout de l'impression peut dire qu'il ne se bloque plus.
  • voir le titre. OP croit que le problème est que le tableau n'est pas initialisé. Je ne fais que souligner que ce n'est probablement pas le problème.

InformationsquelleAutor MistyD | 2013-06-25