Походу это все таки проблема Кейла.. он некоторые переменые держит в регистрах, и при этом не может отобразить их в Watch. Может и не в этом дело, не вдавался, но проблему видел. Приходилось либо смотреть в дизасме какому регистру соответствует переменная и глядеть прямо регистр, либо заводить фиктивную volatile переменную и временно присваивать ей значение.
PS это еще цветочки... вот когда включить оптимизацию и он if else будет делать через условные операторы, то забавно наблюдать как пошагово будете заходить в ту ветвь, которая не выполняется. То есть выполняется в асме, но в Сях как бы не должна. Блин, мутно говорю, но кто-нибудь поймет