ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
5 мая
962972 Топик полностью
POV_ (06.12.2019 15:11, просмотров: 1) ответил SciFi на В дизассемблере по шагам пройдись. Указатель стека проверь.
В общем сам "дурак", дал шанс компилятору при оптимизации повертеть меня на херу... Есть у меня к примеру такое: sprintf(bb, "%s (%s - %s)", psu_GetField(psuNOMINAL_VOUT), psu_GetField(psuMIN_VOUT), psu_GetField(psuMAX_VOUT)); Внутри psu_GetField есть свой sprintf, а то и два. Ну вот в зависимости от кода вылетать начинало то на одном месте, то на другом. Непредсказуемо. Заменил на дубовое bb1 = psu_GetField(psuNOMINAL_VOUT); bb2 = psu_GetField(psuMIN_VOUT); bb3 = psu_GetField(psuMAX_VOUT); sprintf(bb, "%s (%s - %s)", bb1, bb2, bb3); и начало работать в любых условиях.