реклама на сайте
подробности

 
 
> Отладка и выход за пределы массивов, Как отловить выход за предел массива.
Neo_Matrix
сообщение Apr 6 2018, 20:27
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 11-04-06
Пользователь №: 16 029



Подскажите, есть ли способ под FreeRTOS понять есть ли выходы за предел массива. Хуки на недостаток хипа и стека работают нормально и очень помогают, когда нужно зажать стек задачи до минимума. Но как отладить выход за пределы массивов? Такая необходимость появилась, так как иногда устройства перезагружаются сами по себе(в обработчиках исключений стоит функция сброса, так как устройства должны максимально быть доступны). Есть подозрение на выход за пределы. Так как проект достаточно крупный около 300кб кода с оптимизацией, пересмотреть, а главное заметить ошибку очень сложно.
Кто, что может порекомендовать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Neo_Matrix
сообщение Apr 7 2018, 22:57
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 11-04-06
Пользователь №: 16 029



Спасибо всем за ответы. Их действительно много и они вполне перекрывают вопрос. Думаю лучший способ настроить MPU(cortex m4) + в некоторых местах сделаю массивы на длину +1 элемент и поставлю туда брейкпоинт на запись и чтение. Вариант с перекрытием массивов очень сложен, так как кода много и проблемный массив неизвестен. Аналитически код был просмотрен уже неоднократно, был найден один ляп с приведением типов, но это не изменило ситуацию в корне. Так же интересует, в случае фриртоса и выделения памяти в хипе, если будет затерт конец массива выделенной памяти, будет ли вызван ассерт во время фрии, или в конце нет данных маллока для отслеживания окончания массива(используется heap4.c + его модификация под CCM память)? Вариант с испытательным сроком очень оригинален. Всем спасибо sm.gif

Сообщение отредактировал Neo_Matrix - Apr 7 2018, 23:06
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Apr 8 2018, 09:30
Сообщение #3


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Neo_Matrix @ Apr 8 2018, 01:57) *
Спасибо всем за ответы. ...


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

Но имхо - проблема не в коде, а в организации...

удачи вам
(круглый)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Neo_Matrix   Отладка и выход за пределы массивов   Apr 6 2018, 20:27
- - jcxz   Цитата(Neo_Matrix @ Apr 6 2018, 23:27) По...   Apr 6 2018, 21:57
- - kolobok0   Цитата(Neo_Matrix @ Apr 6 2018, 23:27) .....   Apr 7 2018, 00:19
|- - jcxz   Цитата(kolobok0 @ Apr 7 2018, 03:19) Набе...   Apr 7 2018, 19:08
- - novikovfb   Для начала стоит перенести код в настольный ПК и п...   Apr 7 2018, 04:11
- - k155la3   1. Проработайте код аналитически, тк выход за гран...   Apr 7 2018, 09:14
- - k155la3   Цитата(jcxz @ Apr 7 2018, 22:08) . . . (...   Apr 7 2018, 19:49
|- - jcxz   Цитата(k155la3 @ Apr 7 2018, 22:49) 2. Эт...   Apr 7 2018, 20:23
|- - k155la3   Цитата(jcxz @ Apr 7 2018, 23:23) И что? ...   Apr 8 2018, 13:40
|- - Kabdim   Цитата(jcxz @ Apr 7 2018, 23:23) И что? ...   Apr 8 2018, 14:03
- - HardEgor   Цитата(Neo_Matrix @ Apr 7 2018, 03:27) Та...   Apr 8 2018, 04:15
- - Neo_Matrix   Всем спасибо. Ошибка найдена. Функции strncmp при ...   Apr 10 2018, 12:11
|- - jcxz   Цитата(Neo_Matrix @ Apr 10 2018, 15:11) В...   Apr 10 2018, 12:26
||- - haker_fox   QUOTE (jcxz @ Apr 10 2018, 20:26) Вообще ...   Apr 10 2018, 14:51
||- - jcxz   Цитата(haker_fox @ Apr 10 2018, 17:51) А ...   Apr 11 2018, 06:24
||- - haker_fox   QUOTE (jcxz @ Apr 11 2018, 14:24) А чтени...   Apr 12 2018, 15:17
|- - megajohn   Цитата(Neo_Matrix @ Apr 10 2018, 15:11) В...   Apr 10 2018, 12:44
- - Neo_Matrix   Использую Keil. В комплекте с FREERTOS есть демка,...   Apr 10 2018, 14:52


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 18:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016