ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
3 июля
1446306 Топик полностью
Nikolay_Po (Вчера, 15:58, просмотров: 30) ответил POV на А как её не отключать если хочется пошагово походить отладчиком.
Нехер пошагово шляться. Я вставляю "asm volatile ("NOP");" в нужном месте. Тогда появляется возможность привязать точку останова к конкретной команде ассемблера. Но и это может не сработать - может оказаться, что через это место код проходит и из других функций. В таком случае ставлю условие по смыслу, например: 
if (Speed>=5000) {
asm volatile ("NOP");
}

В таком случае точно сработает, когда в этом месте кода, переменная будет иметь подходящее значение. Оба способа работают при любой оптимизации, первый менее надёжен, так как при переиспользовании кода после оптимизации, может давать ложные срабатывания.


А для отладки значений переменных, когда используется оптимизация, их приходится объявлять вне функции и волатильными. Иначе состояние переменной: "optimized out".