@ramir

Как найти переполненный буфер в С?

Всем привет!

В Си и микроконтроллерах не силен, так что прошу сильно не пинать.

Ситуация в следующем: имею зависший (логически, иначе вотчдог перезапустил бы) микроконтроллер. Прошивка написана на Си. Подключился отладчиком, поставил выполнение на паузу и смотрю состояние переменных в памяти. В большом количестве инициализированных, глобальных переменных (как правило контексты модулей) содержится какая-то белиберда. Прихожу к выводу что где-то обращаюсь к несуществующим элементам одного из буферов. Обнаружить методом тыка и сравнение адресов переменных не удалось, программа достаточно большая.

Микроконтроллер: nRF52840
IDE: Segger embedded studio

Вопросы:
1. Как обычно ищут такие ошибки?
2. Ситуация случается достаточно редко, можно ли как-то снять дам памяти для дальнейшего анализа? Точно знаю что можно с помощью nrfutil, но как с этим работать дальше - непонятно.
3. Может быть есть какие-то инструменты для визуализации памяти (переменных в ней), благо весь мой код без динамического выделения памяти.
4. Может быть есть какие-то инструменты, которые статическим анализом кода могут находить подобные ситуации.

Заранее благодарю.
  • Вопрос задан
  • 192 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы