WikiDer > Шина (инструмент для программирования)
Эта статья нужны дополнительные цитаты для проверка. (Март 2013 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
Разработчики) | Разработчики сплинта |
---|---|
Стабильный выпуск | 3.1.2 / 12 июля 2007 г. |
Репозиторий | |
Операционная система | Кроссплатформенность |
Тип | Статический анализ кода |
Лицензия | GPL |
Интернет сайт | http://www.splint.org |
Шина, Короче для Безопасное программирование Lint, это инструмент программирования за статическая проверка C программы для обеспечения безопасности уязвимости и ошибки кодирования. Ранее называвшаяся LCLint, это современная версия Unix ворсинок инструмент.
Шина имеет возможность интерпретировать специальные аннотации к исходный код, что дает более надежную проверку, чем это возможно, просто глядя на источник. Шина используется gpsd в рамках усилий по разработке дизайна без дефектов.[1]
Шина бесплатно программное обеспечение выпущен в соответствии с условиями Стандартная общественная лицензия GNU.
Основная деятельность по разработке Splint была остановлена в 2010 году. CVS в SourceForge, по состоянию на сентябрь 2012 г. самое последнее изменение в репозитории было в ноябре 2010 г.[2] А мерзавец репозиторий в GitHub имеет более свежие изменения, начиная с июля 2019 года.[3]
Пример
#включают <stdio.h>int главный(){ char c; пока (c != 'Икс'); { c = Getchar(); если (c = 'Икс') возвращаться 0; выключатель (c) { дело ' n': дело 'р': printf("Новая линия п"); дефолт: printf("% c",c); } } возвращаться 0;}
Выход шины:
Переменная c использовалась до определения Предполагаемый бесконечный цикл. Никакое значение, используемое в тесте цикла (c), не изменяется тестом или телом цикла. Присвоение int для char: c = getchar () Тестовое выражение для if is выражение присваивания: c = 'x' Тестовое выражение для if not boolean, введите char : c = 'x'Падение через регистр (без предшествующего разрыва)
Фиксированный источник:
#включают <stdio.h>int главный(){ int c = 0; // Добавлено определение начального присваивания. пока (c != 'Икс') { c = Getchar(); // Исправлен тип c до int если (c == 'Икс') // Исправлена ошибка присваивания, чтобы сделать его оператором сравнения. возвращаться 0; выключатель (c) { дело ' n': дело 'р': printf("Новая линия п"); перемена; // Добавлен оператор break для предотвращения провала. дефолт: printf("% c",c); перемена; // Не рекомендуется использовать оператор break в catch по умолчанию. } } возвращаться 0;}
Смотрите также
- Переполнение буфера
- Отладчик памяти
- Тестирование программного обеспечения
- Список инструментов для статического анализа кода
Рекомендации
- ^ Раймонд (2012). Браун, Эми; Wison, Грег (ред.). Архитектура приложений с открытым исходным кодом, Том II (Эрик под ред.). Лулу. ISBN 9781105571817.
- ^ "Статистика CVS проекта Splint". Получено 2012-09-11.
- ^ "История git проекта Splint". Получено 2020-09-16.
внешняя ссылка
Этот инструмент для программирования-связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |