Код исполняется на другом компе, где оборудование. Подключить туда удалённый интерактивный отладчик нельзя. Поэтому -- только лог-файл.
Начинаю читать код внимательно... Вижу:
int var1;
// (много кода)
var1=CONSTANT1;
// (много кода)
if(var1==CONSTANT2)//...
Так, понятно. Заменяю:
int var1;
// (много кода)
var1=CONSTANT2;
// (много кода)
if(var1==CONSTANT2)//...
var1 всё равно равна CONSTNANT1! Начинаю сходить с ума. Читаю ещё раз внимательно. Вижу:
int var1;
// (много кода)
var1=CONSTANT2;
// (много кода)
var1=CONSTANT1;
// (много кода)
if(var1==CONSTANT2)//...
АААААА! То есть там два раза присваивалось значение! Самое главное, что второе присваивание когда-то написал я сам, т.к. не заметил первого (которое было там исторически), а когда писал, условия были таковы, что было нужно значение CONSTANT1, поэтому тогда ошибка не всплыла (да тогда это и не было ошибкой).