Comments 25
Даа, грустно! Ведь mbedOS вроде как юзает asan clang'овский, на гитхабе хостятся и всякие другие модные слова употребляют. И на С++ пишут, а не на С.
Но нет, все равно malloc, а не new хотя бы, никаких умных контейнеров, и опять memset вместо std::fill. Фу.
Единственное, что из статьи не ясно — в чем же именно заключается поддержка GNU Arm Embedded? Я несколько лет назад проверял, что PVS-Studio сходу умеет работать с arm gcc — в конце концов, это ведь просто gcc.
Видимо, теперь учитывается какая-то специфика, но как раз про это в статье не написано.
Но нет, все равно malloc, а не new хотя бы, никаких умных контейнеров, и опять memset вместо std::fill. Фу.
Единственное, что из статьи не ясно — в чем же именно заключается поддержка GNU Arm Embedded? Я несколько лет назад проверял, что PVS-Studio сходу умеет работать с arm gcc — в конце концов, это ведь просто gcc.
Видимо, теперь учитывается какая-то специфика, но как раз про это в статье не написано.
В ядре у них полно C, так что насчет malloc ничего удивительного.
А насчет поддержки, фронтенд там целиком от gcc, так что в этом плане практически без изменений. Мы теперь правильно отличаем обычный gcc от того, который для ARM, и учитываем некоторые специфичные для платформы вещи. Плюс мы теперь под всеми системами автоматически его находим и правильно проставляем все настройки для анализа.
А насчет поддержки, фронтенд там целиком от gcc, так что в этом плане практически без изменений. Мы теперь правильно отличаем обычный gcc от того, который для ARM, и учитываем некоторые специфичные для платформы вещи. Плюс мы теперь под всеми системами автоматически его находим и правильно проставляем все настройки для анализа.
В ядре у них полно C, так что насчет malloc ничего удивительного.
Непонятно только зачем у них там С вообще. Но это к ним вопрос, не к вам :)
учитываем некоторые специфичные для платформы вещи
А вот тут хотелось бы поподробнее!
1) А планируется ли поддержка bare metal или других операционных сред?
2) Выработаны ли диагностики гонки, связанные с моделью памяти на ARM, которая существенно отличается от x86?
2) Выработаны ли диагностики гонки, связанные с моделью памяти на ARM, которая существенно отличается от x86?
1) А планируется ли поддержка bare metal или других операционных сред?Embedded — очень широкое направление. В приоритете пока поддержка чего-нибудь максимально популярного среди разработчиков и где работа препроцессора не сильно отличается от поддерживаемых нами компиляторов.
2) Выработаны ли диагностики гонки, связанные с моделью памяти на ARM, которая существенно отличается от x86?Эта задача полноценно не решается статическим анализом, поэтому ничего нового мы не делали. А существующих диагностик на эту тему совсем не много.
Можно было бы проверить FreeRTOS как одну из самых распространенных открытые ОСРВ для встроенки.
А ещё vxWorks
ага, или ещё код сгенерированный с помощью CubeMX
респект ребята)) очень круто!
Как насчет линаровского тулчейна? www.linaro.org/downloads
Здесь следовало бы либо вызвать delete, либо хотя бы отдать хранящийся в переменной interface адрес наружу в любом случае, чтобы об этом мог позаботиться вызывающий код
а ещё лучше — std::unique_ptr::release
И, да, ребята, категорически умоляю, прячьте объяснения под кат, а то совсем неинтересно становится читать
Здравствуйте, можете по подробнее рассказать про связку PVS-Studio и Keil Embedded Development. Каким образом происходит взаимодействие: имеется некая интеграция в среду разработки или через внешний скрипт?
Добрый день.
Для проверки Keil-проектов у нас пока нет интеграции в среды разработки (uVision/Eclipse), поэтому анализ возможен только с помощью прямой интеграции в скрипты сборки или с использованием режимов мониторинга сборки (для Windows и Linux).
Вы можете запросить на сайте временный ключ для проверки своего проекта. Задать вопросы вы можете через форму обратной связи, или обменяться почтой через ЛС Хабра для продолжения общения.
Для проверки Keil-проектов у нас пока нет интеграции в среды разработки (uVision/Eclipse), поэтому анализ возможен только с помощью прямой интеграции в скрипты сборки или с использованием режимов мониторинга сборки (для Windows и Linux).
Вы можете запросить на сайте временный ключ для проверки своего проекта. Задать вопросы вы можете через форму обратной связи, или обменяться почтой через ЛС Хабра для продолжения общения.
Присылайте проект в наш Check List на GitHub, откуда мы берём проекты для анализа.
Sign up to leave a comment.
В PVS-Studio появилась поддержка GNU Arm Embedded Toolchain