The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

01.03.2018 18:39  Статический анализатор PVS-Studio 6.22 адаптирован для ARM-компиляторов (реклама)

Компания СиПроВер подготовила новую версию статического анализатора PVS-Studio 6.22, который доработан для обеспечения проверки кода для встраиваемых устройств на базе архитектуры ARM. В частности, в новой версии появилась поддержка ARM Compiler 5 и ARM Compiler 6 в составе сред разработки Keil uVision 5 и Keil DS-MDK, а также поддержка IAR C/C++ Compiler for ARM в составе среды IAR Embedded Workbench.

Для загрузки доступна демонстрационная версия PVS-Studio для Linux. Так как многие проекты для встраиваемых систем являются небольшими и для них не всегда окажется целесообразным приобретать лицензию, разработчики предоставили для подобных проектов вариант бесплатной лицензии. В том числе предоставленный вариант бесплатной лицензии позволяет использовать её не только в открытых, но и в закрытых проектах.

Для тестирования новых возможностей PVS-Studio была проведена проверка кода открытой операционной системы RT-Thread, ориентированной на применения на IoT-устройствах на базе как микроконтроллеров (ARM Cortex-M0, Cortex-M3/4/7), так и процессоров ARM (ARM Cortex-A8 и ARM Cortex-A9 DualCore). Тестирование было проведено в режимах Keil и IAR, и результаты получились примерно одинаковыми.

Из выявленных предупреждений было отобрано 95 наиболее интересных проблем, среди которых:

  • Запись во внешнюю структуру локальных переменных, которые перестанут существовать после выхода из функции, а в структуре останутся указатели уже на другие объекты в стеке;
  • Логическая ошибка при построении условных операторов;
  • Опечатки, в которых вместо двух операторов "&" дважды использовали оператор "&&", что приводит к постоянному возврату значения 0 или 1;
  • Использование вместо оператора "‹‹" значения "‹";
  • Применение всегда истинного условия "i ‹= 255" для переменной i с типом uint8_t, которое в коде приводит к зацикливанию;
  • Использование условий вида (x !=0 || x != 1 || x != 2 || x != 3), которые всегда являются истинными;
  • Использование при вызове memcpy(elementAddress, filter, sizeof(filter)) не размера всей структуры, а размера указателя на структуру;
  • Разыменование указателя до его проверки;
  • Неосмысленная перезапись переменной ("reg_value =" вместо "reg_value |=");
  • Неполная инициализация массива (обнулялся только элемент с индексом 0, а остальные элементы остались неинициализированными);
  • Тело цикла всегда выполняется только один раз и все условия внутри цикла бессмысленны, так как переменная i всегда равна 0;
  • Переменная нигде не инициализируется перед чтением из неё значения.


  1. Главная ссылка к новости (http://www.viva64.com/ru/pvs-s...)
  2. OpenNews: Сравнение качества кода Firebird, MySQL и PostgreSQL в анализаторе PVS-Studio (реклама)
  3. OpenNews: Итоги проверки Tizen в статическом анализаторе PVS-Studio (реклама)
  4. OpenNews: Анализатор PVS-Studio бесплатно доступен экспертам по безопасности (реклама)
  5. OpenNews: Использование PVS-Studio для поиска дефектов безопасности (реклама)
  6. OpenNews: Эксперимент по выявлению уязвимостей во FreeBSD при помощи PVS-Studio (реклама)
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: pvs-studio
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (-), 19:53, 01/03/2018 [ответить] [показать ветку] [···]    [к модератору]
  • –18 +/
    В СПО как-то все зарабатывают. Некоторые даже грантами на всякие глупости умудряются швыряться. У вас коммерческий проект, и тем не менее вы на столько опустились, что везде спамите. Как так?
     
     
  • 2.3, A.Stahl (ok), 19:54, 01/03/2018 [^] [ответить]    [к модератору]
  • +/
    Ну, справедливости ради, надо сказать, что давно их не было слышно. Тут во всяком случае.
     
     
  • 3.37, Аноним (-), 09:27, 02/03/2018 [^] [ответить]    [к модератору]
  • –2 +/
    Я лично видел уже с десяток постов на хабре и как минимум 3 здесь. Все уши прожужжали, какой у них крутой анализатор. Такая агрессивная реклама ничего кроме отвращения не вызывает.
     
  • 3.49, Аноним (-), 19:48, 02/03/2018 [^] [ответить]    [к модератору]
  • +/
    Давайте все разработчики проприетарного софта тут начнут постить свою рекламу. Сайт, в конце концов, называется opennet или как?
     
  • 2.4, sadasd (?), 20:22, 01/03/2018 [^] [ответить]    [к модератору]
  • –1 +/
    Команда маленькая, если есть идеи как им по другому рекламу подешевле делать, то вперед и с песней.
     
     
  • 3.50, Аноним (-), 19:50, 02/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Это не реклама. Эта антиреклама какая-то. В каждой их рекламе обсуждается сама реклама, а не продукт. При том в негативном ключе.
     
     
  • 4.54, Аноним (-), 14:11, 03/03/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Да уж, рассуждать на портале по СПО про кейл и иар - весьма оригинально. Можно еще попробовать новую колбасу рекламировать на форуме у веганов, интересно наверное будет.
     
  • 2.5, kai3341 (ok), 20:23, 01/03/2018 [^] [ответить]    [к модератору]  
  • +30 +/
    Если бы все так спамили, я бы даже uBlock выключил

    Любая ошибка -- это головная боль. Такие ошибки, как Race Condition, тестами не отловить. Ребята же предлагают решение, снимающее массу головной боли на старте. Это плохо?

    Ребята использовали опенсорс как тестовый полигон: кода много самого разного качества, ошибки самые разнообразные. Что опенсорс от этого потерял?

    Ребята пиарились отчётами об ошибках, попутно объясняя, как не наступить на некоторые грабли (например, memset). Что потерял пользователь от такой рекламы?

    В результате опенсорс получал отчёты об ошибках, большая часть которых исправлялась (я оптимист). Что при этом терял опенсорс? Ну кроме ошибок и глюков.

    Ребята пошли дальше навтречу опенсорсу и позволили проверять проекты, в шапке которых было несколько строк. Если у тебя нет денег на покупку продукта -- пользуйся им бесплатно. Я замечу, что сложность синтаксического анализа чуть выше, чем нарисовать кнопку на форме (ну то есть намного порядков, кто сарказма не видит). И результатами работы ребята позволили пользоваться бесплатно, если у вас нет денег на лицензию. Что при этом потерял опенсорс? Может, что-то при этом потеряли лично Вы?

    Сейчас ребята выкатили апдейт: ARM. Это значит, что на Raspberry и ведроидах станет меньше глюков. Что при этом потерял опенсорс? Что потеряли лично Вы?

     
     
  • 3.9, Аноним (-), 20:52, 01/03/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    > Ребята пошли дальше навтречу опенсорсу и позволили проверять проекты, в шапке которых было несколько строк.

    Ребята пошли дальше и нашли способ спамить прямо в чужих исходниках.

     
     
  • 4.20, Аноним (-), 22:59, 01/03/2018 [^] [ответить]     [к модератору]  
  • +/
    Напиши скрипт fuse fs, вставляющий нужную йобу в файлы специально для анализатор... весь текст скрыт [показать]
     
     
  • 5.21, Ilya Indigo (ok), 23:09, 01/03/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Это запрещено в соглашении.
     
     
  • 6.27, Аноним (-), 01:36, 02/03/2018 [^] [ответить]    [к модератору]  
  • +/
    ну и покс
     
     
  • 7.34, Ilya Indigo (ok), 08:19, 02/03/2018 [^] [ответить]    [к модератору]  
  • –3 +/
    После ответа Карпова ниже мне уже действительно пoкс и на него самого и на его проприетарное пoделие.
    В соседней новости поинтереснее этой рекламы.
     
     
  • 8.45, Аноним (-), 11:41, 02/03/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    А я его поддерживаю. Возьми и сам проверь. Привыкли людей на халяву напрягать. Я думаю, у него своих дел хватает и некогда бесплатно выполнять твои прихоти, то, что интересно только тебе.
     
     
  • 9.46, angra (ok), 12:10, 02/03/2018 [^] [ответить]     [к модератору]  
  • +2 +/
    Возможно, это дитя индиго думает, что существует волшебная команда проверить по... весь текст скрыт [показать]
     
     
  • 10.48, Аноним (-), 14:35, 02/03/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Вот и я об этом)
     
  • 6.28, Какаянахренразница (ok), 02:20, 02/03/2018 [^] [ответить]    [к модератору]  
  • +/
    В соглашении с кем? Я правлю СВОЙ код. Пишу туда, что хочу и как хочу.
     
     
  • 7.30, angra (ok), 04:33, 02/03/2018 [^] [ответить]     [к модератору]  
  • +2 +/
    В соглашении об использовании PVS-Studio У тебя целых три варианта регулярного ... весь текст скрыт [показать]
     
     
  • 8.66, Какаянахренразница (ok), 17:09, 06/03/2018 [^] [ответить]     [к модератору]  
  • +/
    У тебя та же болезнь, что и у Карпова Правка моего кода никак не связана с испо... весь текст скрыт [показать]
     
  • 6.29, annual slayer (?), 03:08, 02/03/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    а если создать форк с дополнительной шапкой?
     
  • 6.36, Аноним (-), 09:13, 02/03/2018 [^] [ответить]    [к модератору]  
  • +/
    citation needed
     
  • 4.24, Ordu (ok), 23:42, 01/03/2018 [^] [ответить]     [к модератору]  
  • +3 +/
    Решение спамить или не спамить в исходниках какого-либо проекта принимают не раз... весь текст скрыт [показать]
     
  • 3.10, Аноним (-), 20:54, 01/03/2018 [^] [ответить]     [к модератору]  
  • +/
    Ты разуй глаза и прочитай, про что новость Они поддержку каких-то проприетарных... весь текст скрыт [показать]
     
     
  • 4.12, kai3341 (ok), 21:00, 01/03/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    GCC и clang всё ещё поддерживаются, а указанными выше Вас пользоваться никто не ... весь текст скрыт [показать]
     
     
  • 5.16, Аноним (-), 21:38, 01/03/2018 [^] [ответить]    [к модератору]  
  • +/
    А что, с gcc и clang оно раньше не работало?
     
  • 3.32, Аноним (-), 06:48, 02/03/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Я аж прослезился. Если Пивасик-Студия исчезнет, что при этом потеряет опенсорс, ничего.
     
     
  • 4.55, lfx (ok), 19:58, 03/03/2018 [^] [ответить]     [к модератору]  
  • +3 +/
    Отвечу на твой вопрос, как минимум opensource потеряет хороший инструмент, котор... весь текст скрыт [показать]
     
     
  • 5.58, Аноним (-), 06:46, 04/03/2018 [^] [ответить]    [к модератору]  
  • +/
    немало. извините
     
  • 3.39, Аноним (-), 09:58, 02/03/2018 [^] [ответить]    [к модератору]  
  • –4 +/
    Не поверишь, но далеко не всем нужен PVS-Studio. А тем, кому нужен, уже 100% знают о нем из прошлых спам рассылок.
    Для написания кода без ошибок есть Rust. А PVS-Studio - костыль.
     
     
  • 4.40, Аноним (-), 10:28, 02/03/2018 [^] [ответить]    [к модератору]  
  • +/
    > Для написания кода без ошибок есть Rust.

    Что, сажаешь любую обезьянку, и она фигачит код на rust без ошибок? Не верю!

     
  • 4.56, lfx (ok), 20:15, 03/03/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Но то что без unsafe в котором себе все также можно отстрелить ногу, на Rust дал... весь текст скрыт [показать]
     
     
  • 5.59, aZIZ (?), 10:44, 04/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Ну да, только там заведомо известно, что там unsafe, в отличии от язычка для которого предназначено это изделие, и сам этот инструментик успешно показывает, что этот язычок сплошной unsafe.
     
     
  • 6.64, lfx (ok), 01:23, 05/03/2018 [^] [ответить]     [к модератору]  
  • +/
    От того что ты знаешь где у тебя unsafe меньше ошибок ты не допустишь их ведь н... весь текст скрыт [показать]
     
  • 2.26, Аноним (-), 00:46, 02/03/2018 [^] [ответить]    [к модератору]  
  • +/
    У них анализатор стоит дороже Intel vtune + vc++ :)
     
  • 1.2, Аноним (-), 19:54, 01/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –2 +/
    Как раз к новым ноутам на арме и виндусе подоспели, очень хорошо.
     
     
  • 2.6, fi (ok), 20:25, 01/03/2018 [^] [ответить]    [к модератору]  
  • +/
    IAR Embedded - это не про ноуты, а про железки самопальные
     
  • 2.67, Аноним (-), 11:31, 07/03/2018 [^] [ответить]    [к модератору]  
  • +/
    > Как раз к новым ноутам на арме и виндусе подоспели, очень хорошо.

    С нетерпением жду как ты кайлом и иаром под виндовые армы собирать будешь. На это шоу можно будет билеты продавать.

     
  • 1.7, Аноним (-), 20:27, 01/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –3 +/
    Проверьте пожалуйста проект Tor
     
     
  • 2.8, Andrey_Karpov (ok), 20:40, 01/03/2018 [^] [ответить]    [к модератору]  
  • +6 +/
    Мои аплодисменты проекту Tor - https://www.viva64.com/ru/b/0507/
     
     
  • 3.11, Аноним (-), 21:00, 01/03/2018 [^] [ответить]     [к модератору]  
  • –5 +/
    Значит, действительно по заказу и под контролем спецслужб писали Полное отсутс... весь текст скрыт [показать]
     
     
  • 4.13, Аноним (-), 21:11, 01/03/2018 [^] [ответить]     [к модератору]  
  • +/
    Спецслужбы повсюду, спасает лишь одно - фольгированная шапочка, чтоб они не могл... весь текст скрыт [показать]
     
     
  • 5.14, A.Stahl (ok), 21:17, 01/03/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Ты ведь знаешь, что для экранирования мозголучей эффективна лишь золотая фольга?
     
     
  • 6.19, Аноним (-), 21:54, 01/03/2018 [^] [ответить]     [к модератору]  
  • +3 +/
    Не слушайте его, он глубоко внедренный агент рептилоидов Фольга помогает только... весь текст скрыт [показать]
     
     
  • 7.23, анонимус (??), 23:39, 01/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Спасибо, записал
     
  • 5.17, Аноним (-), 21:40, 01/03/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    > читать мои мысли как в 1984

    Прежде чем с умным видом ссылаться на какую-то книгу, полезно эту книгу прочесть.

     
  • 4.15, Аноним (-), 21:21, 01/03/2018 [^] [ответить]     [к модератору]  
  • +/
    На этом форуме новость на тему tor относится к 2010му году, а сам проект впервые... весь текст скрыт [показать]
     
  • 4.68, Аноним (-), 11:37, 07/03/2018 [^] [ответить]     [к модератору]  
  • +/
    А может все проще И поскольку это сетевой сервис, который многим хочется разлом... весь текст скрыт [показать]
     
     
  • 5.73, Аноним (-), 20:22, 07/03/2018 [^] [ответить]     [к модератору]  
  • +/
    Проще, проще В следующий раз обязательно добавлю тег ирония для бронелобых ... весь текст скрыт [показать]
     
  • 3.22, Ilya Indigo (ok), 23:14, 01/03/2018 [^] [ответить]    [к модератору]  
  • +/
    > Мои аплодисменты проекту Tor - https://www.viva64.com/ru/b/0507/

    А свежие postfix и dovecot проверяли?

     
     
  • 4.25, Andrey_Karpov (ok), 23:48, 01/03/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > А свежие postfix и dovecot проверяли?

    Оплатите регулярный мониторинг проекта?


     
     
  • 5.62, Michael Shigorin (ok), 16:59, 04/03/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    >> А свежие postfix и dovecot проверяли?
    > Оплатите регулярный мониторинг проекта?

    Интересу ради -- какой порядок величин?

     
     
  • 6.63, Andrey_Karpov (ok), 19:29, 04/03/2018 [^] [ответить]     [к модератору]  
  • +/
    Нет какого-то прайса Каждый раз это обговаривается отдельно, тем более, что обы... весь текст скрыт [показать]
     
  • 5.69, Аноним (-), 11:39, 07/03/2018 [^] [ответить]    [к модератору]  
  • +/
    > Оплатите регулярный мониторинг проекта?

    При наличии coverity который нахаляву открытые проекты сканит, так что даже бэджик на гитхабе можно вывесить - сами понимаете :)

     
     
  • 6.71, Andrey_Karpov (ok), 15:13, 07/03/2018 [^] [ответить]    [к модератору]  
  • +/
    > При наличии coverity который нахаляву открытые проекты сканит, так что даже бэджик
    > на гитхабе можно вывесить - сами понимаете :)

    Так и для PVS-Studio существует бесплатный вариант лицензии: https://www.viva64.com/ru/b/0457/

    Для бесплатного использования Coverity, требуется открыть исходники. PVS-Studio не требует открывать исходники, но нужно вставить комментарий. Два анализатора - два подхода со своими преимуществами и недостатками.

     
  • 1.18, Аноним (-), 21:47, 01/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –2 +/
    Хотел было высказать Карпову благодарность за то, что поведал о существовании ОС RT-Thread. Но открыл её сайт и передумал.
     
  • 1.31, anonymous (??), 06:10, 02/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А чем отличаются arm компиляторы от x86 с точки зрения статического анализа?
     
     
  • 2.35, Andrey_Karpov (ok), 08:31, 02/03/2018 [^] [ответить]    [к модератору]  
  • +/
    > А чем отличаются arm компиляторы от x86 с точки зрения статического анализа?

    В основном разными расширениями языка. Плюс потребовалось учесть ряд разных низкоуровневых трюков, которые были подозрительны анализатору (ложные срабатывания), но для микроконтроллеров вполне себе нормальная практика.

     
  • 1.38, Ne01eX (ok), 09:54, 02/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    А тем временем в далёкой-далёкой галактике... Вот -> https://www.opennet.ru/opennews/art.shtml?num=48174 что получилось. :-)
     
  • 1.41, Аноним (-), 10:43, 02/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    fragma-clang гораздо приятнее

    http://frama-c.com/frama-clang.html

     
  • 1.44, Аноним (-), 11:38, 02/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Отличный продукт. А не нравится статья - не читайте.))) Да и где вы здесь спам увидили?))
     
     
  • 2.52, Аноним (-), 19:56, 02/03/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Ты заходишь в почту и видешь рекламу заработать в интернете миллион бесплатно, б... весь текст скрыт [показать]
     
     
  • 3.53, Аноним (-), 21:37, 02/03/2018 [^] [ответить]     [к модератору]  
  • +3 +/
    Эта реклама явно помечена как реклама И, заметьте, помечена не малозаметным тег... весь текст скрыт [показать]
     
  • 1.47, Andrey_Karpov (ok), 12:23, 02/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    Сегодня опубликовали статью: Статический анализатор кода PVS-Studio 6.22 адаптирован для ARM-компиляторов (Keil, IAR) - https://habrahabr.ru/company/pvs-studio/blog/350314/
     
     
  • 2.57, Tita_M (ok), 04:33, 04/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Андрей, ответьте не специалисту: как я понял для JAVA ваш анализатор может отлавливать ошибки связанные с многопоточностью. Это возможно благодаря тому, что в JAVA есть специальные языковые конструкции для написания многопоточного кода? И для C/C++ поиск подобных ошибок реализовать не удастся?
     
     
  • 3.60, Andrey_Karpov (ok), 11:34, 04/03/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    > как я понял для JAVA ваш анализатор может отлавливать ошибки связанные с многопоточностью

    Откуда Вы это взяли? :)
    Во-первых, Java анализатор вообще ещё только в разработке и про него не было ни одной статьи. Во-вторых, в первую очередь мы будем реализовывать аналоги диагностик, существующие в C++ анализаторе. По поводу диагностик для выявления ошибок многопоточности ничего сейчас сказать не могу, мы про это пока не думали.
    Выявлять ошибки, связанные с многопоточностью в C/C++ вообще очень сложная задача для статического анализа. Есть два варианта. Или делать очень, очень сложный анализатор. Например, Intel в своё время делал такой анализатор, делал, да бросил. Не пошло. Второй вариант — это использовать аннотации, которые добавляет в код человек. В некоторых случаях такие аннотации уже могут быть, если речь идёт о OpenMP. Т.е. директивы OpenMP и есть те самые аннотации, которые нужны в качестве подсказок анализатору. Мы в своё время делали анализатор VivaMP, вот некоторые старые статьи на эту тему:
    https://www.viva64.com/ru/a/0054/
    https://www.viva64.com/ru/a/0044/
    https://www.viva64.com/ru/b/0005/
    Но анализатор не пользовался спросом, и мы закрыли это направление.

     
     
  • 4.61, Tita_M (ok), 15:28, 04/03/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    >Откуда Вы это взяли? :)

    Спутал с другим анализатором, от Фейсбука, кажется. :)

     
     
  • 5.65, lfx (ok), 01:29, 05/03/2018 [^] [ответить]    [к модератору]  
  • +/
    Зато вскрылась интересная информация :)
    >Java анализатор вообще ещё только в разработке
     
  • 4.70, Аноним (-), 11:43, 07/03/2018 [^] [ответить]     [к модератору]  
  • +/
    Правильно, gcc и clang запилили хренову кучу san как часть компилятора Там тип... весь текст скрыт [показать]
     
     
  • 5.72, Andrey_Karpov (ok), 15:16, 07/03/2018 [^] [ответить]    [к модератору]  
  • +/
    > Что явно перспективнее.

    Динамические анализаторы не заменять статические. И наоборот. Эти технологии не конкурируют, а дополняют друг друга. https://www.viva64.com/ru/b/0248/


     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor