si tes boucles ne font rien, il est possible que le compilateur les supprime, pour optimiser (pourquoi laisser des boucles - qui prennent du temps - si elles ne font aucun traitement ? )
du genre, il y a des chances que le compilateur supprime quelque chose de ce style :
int i;
for (i=0 ; i<1000 ; i++) {}
Une solution pour éviter cette optimisation (si le problème vient bien de là) serait de passer ta variable en "volatile" :
volatile int i;
for (i=0 ; i<1000 ; i++) {}
Mais ça reste une solution crade...