close

Вход

Забыли?

вход по аккаунту

- СВД Встраиваемые Системы

код для вставкиСкачать
«Применение инструментов динамического анализа
QNX Momentics IDE»
Игорь Рондарев, «СВД Встраиваемые Cистемы»
ЗАДАЧИ
●
●
Проанализировать код на наличие потенциальных
ошибок
–
QNX Memory Analysis
–
Mudflap
Обеспечить максимальное покрытие кода
–
Code Coverage
QNX Momentics IDE
●
Платформа Eclipse
–
●
CDT (C Development Toolkit)
–
●
модульность и расширяемость
разрабатывается при непосредственном участии
специалистов QSS
QNX-ориентированные инструменты
–
информация о системе, создание загрузочных
образов, профилирование и т.д.
КОНФИГУРАЦИЯ СТЕНДА
Инструментальная
система
Целевая
система
TCP/IP
QNX® Momentics® IDE
qconn
ФРОНТ РАБОТ
●
Страшный сон программиста
–
NULL pointer exception
–
Segmentation fault (Core dumped)
–
...
●
“На одной машине работает, на другой – нет...”
●
“Вчера работало, сегодня – нет....”
●
и т.д.
ТИПОВЫЕ ОШИБКИ
●
Запись в уже освобождённый участок памяти
(strcpy, malloc,..)
–
●
Чтение из неинициализированной области памяти
–
●
char *p, c;
p = malloc(4);
c = p[0];
free(p);
“Висящие” указатели (“dangling pointers”)
–
●
char *p, a[] = "abc";
p = malloc(4);
········
free(p);
········
strcpy(p, a);
char *p; {char c = 'a'; p = &c} ; printf(“%c”, *p);
и т.д.
QNX Memory Analysis
●
●
●
Не требует пересборки приложения
Функционал обеспечивается библиотекой
librcheck.so, переопределяющей некоторые
стандартные функции
Режимы работы
–
Анализ “на лету” с помощью QNX Momentics IDE
–
Запись результатов анализа во временный файл для
последующей обработки
Mudflap
●
●
●
Дополняет возможности инструмента QNX Memory
Analysis
Требует построения инструментированной версии
приложения
Режимы работы
–
Анализ “на лету” с помощью QNX Momentics IDE
–
Запись результатов анализа во временный файл для
последующей обработки
Code Coverage
●
Позволяет обнаружить наличие неиспользуемых
участков кода в программе (в частности, при
написании тестов)
●
Использует метрики компилятора gcc (gcov)
●
Режимы работы
–
Анализ “на лету” с помощью QNX Momentics IDE
–
Запись результатов анализа во временный файл для
последующей обработки
РЕЗУЛЬТАТ
Инструменты динамического анализа:
●
помогают исправлять труднообнаруживаемые
ошибки
●
позволяют повышать эффективность кода
●
получать более компактные приложения
–
удаление неиспользуемых фрагментов кода (например, из
библиотек)
Игорь Рондарев
инженер-программист
[email protected]
www.kpda.ru
www.swd.ru
1/--страниц
Пожаловаться на содержимое документа