@ramir

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

Всем привет!

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
АКМЭ сервис Санкт-Петербург
от 80 000 до 100 000 руб.
Eltex Новосибирск
от 80 000 руб.
ITM Холдинг Екатеринбург
от 65 000 руб.
16 июл. 2019, в 15:39
5000 руб./за проект
16 июл. 2019, в 15:13
100000 руб./за проект
16 июл. 2019, в 15:09
120000 руб./за проект