Окно стека вызовов не отображает локальные значения
Я запускаю сеанс отладки.
Я устанавливаю точку останова внутри функции services_init
на линии 201.
Я управлял run up to break point
команда
Процессор делает паузу в строке 201, как и ожидалось. Однако в окне стека отображаются только переменные, локальные для main
функция.
Почему я не вижу локальные переменные services_init
?
1 ответ
Разработчик из Nordic решил мою проблему
Привет,
Попробуйте зайти в настройки проекта -> вкладка C/C++ и установить уровень оптимизации -O0. Затем заново скомпилируйте и прошейте прошивку снова. При включении более высокой оптимизации компилятор ищет шаблоны во всем вашем коде, объединяет похожие разделы вместе, и результат не такой упорядоченный, как ваш исходный код. По этой причине отладка с высокой оптимизацией может привести к непоследовательным "скачкам" в коде, а стек вызовов может не отображать все переменные правильно.
Ура, Хакон