LINUX.ORG.RU

PVS-Studio для Linux

 , , ,


0

5

Появилась версия анализатора PVS-Studio, работающая в GNU/Linux. До этого программа работала только в Windows.

PVS-Studio — это инструмент для выявления ошибок в исходном коде программ, написанных на С и C++. В случае интеграции с Visual Studio также возможна проверка проектов на C#.

PVS-Studio выполняет широкий спектр проверок кода, но наиболее удачно справляется с поиском опечаток и последствий неудачного Copy-Paste. Показательные примеры таких ошибок: V501, V517, V522, V523, V3001.

Хочу поблагодарить всех, кто принял участие в Beta-тестировании и отправлял нам свои отзывы. Эти отзывы действительно были крайне полезны. Спасибо!

Пакеты PVS-Studio в форматах deb, rpm и tgz доступны для скачивания на официальном сайте.

Чтобы получить регистрационный ключ для знакомства с инструментом, напишите нам. Со временем процесс получения демонстрационной версии может измениться, но сейчас нам важно понимать, кто скачивает анализатор, как его используют, какие проблемы возникают и так далее.

Обязательно сразу же прочитайте краткую инструкцию «как запустить PVS-Studio в Linux».

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

Доклад на конференции C++ CoreHard Autumn 2016 «Что пришлось тестировать и о чем узнать при подготовке Linux-версии PVS-Studio».

Про что доклад: большинство программистов плохо представляют, что означает создание PVS-Studio для Linux. Многие думают, что вся сложность заключается в портировании кода, однако это очень далеко от истины: портировать код очень просто, но это только 5% работы. Остальная работа скрыта от стороннего наблюдателя и состоит в решении многих инфраструктурных вопросов. Предлагаем заглянуть на кухню разработчиков анализатора PVS-Studio и узнать разные интересные нюансы их работы.

>>> Подробности



Проверено: Aceler ()
Последнее исправление: cetjs2 (всего исправлений: 8)

Ответ на: комментарий от ASM

Потому что это свойство языка Си. Не нужно на нём писать без крайней необходимости, а следует использовать более другие, безопасные и продуманные языки.

Vudod ★★★★★
()
Ответ на: комментарий от anonymous

А где чувак по имени mandala. Ну тот, который за «13 сребренников» защищал ПиВаС-Студио.

Соскучился? Щас-щас, доберусь только...

за «13 сребренников»

Хм? 13? А почему 13?

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от Vudod

Я за пожизненный бан автора!

А апруверов предлагаешь помиловать?

mandala ★★★★★
()
Ответ на: комментарий от Vudod

Потенциально это даже опасно для ЛОРа.

Не опасней некоторых фанатичных авторов своих свободных поделок.

mandala ★★★★★
()

Есть мнение, что эти [чудаки на букву М] ещё и GPL нарушают
Единорог бежал, хвостиком махнул, и из открытого проекта Mono 167 ошибок высыпалось (комментарий)

Что же получается, лисы не проплатили новости про их сборки firefox с гостовской криптографией - их банят, а в данном случае мало того, что не погнали ссаными тряпками, так ещё и удаляют сообщения с критикой. Совпадение?

TheAnonymous ★★★★★
()
Ответ на: комментарий от Vudod

Потому что это свойство языка Си. Не нужно на нём писать без крайней необходимости, а следует использовать более другие, безопасные и продуманные языки.

Я всегда думал, что задача анализаторов искать проблемные места. Если код потенциально может содержать ошибку,то анализатор должен об этом сообщить, если, конечно, кол-во ложных срабатываний не зашкаливает все разумные пределы.

Вот ещё пример говнокода:

{
int i=0;
  {
    int i=3;
  }
printf("%i\n", i);
}

ASM ★★
()
Ответ на: комментарий от anonymous

Я вот выразил недоумение, что откровенное реклама делает на хабре > <...>
и слил себе половину кармы

Швабрашвабр давно стал тупой рекламной площадкой. Хабрабыдло только и кормят каждый день пиаром всяких телефончиков-бесполезных гаджетов-проприетарного софта-ресселлерского днищехостинга и т.д, а оно и радо в комментариях побеситься. Ну а карма - это несколько лет как известно, та причина по которой на том ресурсе не может быть адекатных людей, выживают только жополизы и зануды (зато опломба-то, «Уу! хабр! У нас Сообщество! Здесь самые умные люди рунета!», тьфу).

anonymous
()
Ответ на: комментарий от mandala

какой там. одна безмозглая школота на лоре осталась. все им подай, все принеси.

anonymous
()
Ответ на: комментарий от Andrey_Karpov_2009

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

Stage1 ★★
()

редкий случай, когда люди пишут нечто полезное, а не очередной говнодистр вроде альт-линукса и прочих болгеносов

anonymous
()
Ответ на: комментарий от Stage1

Просил у вас недельный ключ, получил, но случились внезапные командировки. Единственное успел проверить, что запускается. Есть шанс, что мне дадут ещё ключ на неделю, чтобы всё-таки потестить на наших проектах, или уже всё?

Просите - и дано вам будет.

Andrey_Karpov_2009
() автор топика
Ответ на: комментарий от TheAnonymous

Есть мнение, что эти [чудаки на букву М] ещё и GPL нарушают

Посмотрел. Мнение верное.

$ strings pvs-studio |grep glibc
TLS generation counter wrapped!  Please report as described in <https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>.
glibc-ld.so.cache1.1
/build/glibc-GKVZIf/glibc-2.23/nptl
/build/glibc-GKVZIf/glibc-2.23/nptl
/build/glibc-GKVZIf/glibc-2.23/nptl
/build/glibc-GKVZIf/glibc-2.23/nptl
/build/glibc-GKVZIf/glibc-2.23/nptl
/build/glibc-GKVZIf/glibc-2.23/nptl
__glibc_reserved1
__glibc_reserved2
__glibc_unused1
__glibc_unused2

https://lwn.net/Articles/117972/

Что же получается, лисы не проплатили новости про их сборки firefox с гостовской криптографией - их банят, а в данном случае мало того, что не погнали ссаными тряпками, так ещё и удаляют сообщения с критикой. Совпадение?

Есть вариант, что maxcom'у отсыпали на развитие сервиса — оно, как бы, меньше из зол. А если нет, то это по меньшей мере странно, что компания, нарушающая GPL, свободно постит новости и еще и находится под защитой состава модераторов.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от anonymous

Швабрашвабр давно стал тупой рекламной площадкой. Хабрабыдло только и кормят каждый день пиаром всяких телефончиков-бесполезных гаджетов-проприетарного софта-ресселлерского днищехостинга и т.д, а оно и радо в комментариях побеситься. Ну а карма - это несколько лет как известно, та причина по которой на том ресурсе не может быть адекатных людей, выживают только жополизы и зануды (зато опломба-то, «Уу! хабр! У нас Сообщество! Здесь самые умные люди рунета!», тьфу).

Полностью поддерживаю. Хабр давно скатился и превратился в какое-то г*вно. Лет 5 назад часто заходил туда, почитать.
Сейчас в лучшем случае раз в месяц загляну, если не забуду. От их рассылки новостей отписался везде.
Сообщество там больно до ужаса, кроме рекламы давно нормального материала нет.

Michail_Ul ★★
()
Ответ на: комментарий от Deleted

Он и выдает. Но только о некоторых. gcc 6 начал предупреждать о неверных/вводящих в заблуждения отступах, например:

if (cond) {
    action1();
} else
    action2();
    action3();

дает предупреждение (-Wmisleading-indentation). Конструкции типа

   if (cond);
       action()
тоже вызывают ругань, как и случае потенциально не проинициализированных переменных.

Но, понятное дело, это только самое начало, так что, вполне есть, где развернуться.

AlexM ★★★★★
()
Ответ на: комментарий от Deleted

В случае с Firefox степень нарушения серьезнее, там зажопили патчи. Это как пропатчить GCC, добавив поддержку Visual Basic, и выложить только бинарники! А потом говорить «лицензии-шлицензии, мы русские и мы гордимся Горбушкой и тем, что никогда их не читаем!», «ой, как будто вы мои патчи смотреть будете. Реально это нужно 0.001%»

Авторам рекомендую динамическую линковку с Glibc. В идеале - использовать билд-ферму с CentOS 6 (например в chroot, чтобы не ломать существующую инфраструктуру). Там Glibc 2.12, а также есть репозиторий Devtoolset с почти последним GCC, и EPEL с хороошей коллекцией либ

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 6)

Нахрена этот протрояненый зонд с убогим маркетингом и ценником который они ссут публично озвучить? Можно просто открыть код и сканироваться бесплатно на https://scan.coverity.com/faq

zabbal ★★★★★
()
Ответ на: комментарий от fornlr

Ну не все же в опенсорс пишут.

Проприетарщики должны страдать.

zabbal ★★★★★
()
Ответ на: комментарий от mandala

Эти неудачи отменяются ctrl-z или откатом на предыдущую версию в системе контроля версий.

te111011010
()
Ответ на: комментарий от Ceiling_QB

Я знаю что он предоставляет. Но он не смог найти те ошибки, что нашёл PVS, верно? Да, пусть они делали это для рекламы и самопиара, но ведь польза была?

Sunderland93 ★★★★★
()

толку 0. вы сначало цену узнайте.

Markus
()
Ответ на: комментарий от Sunderland93

Я знаю что он предоставляет. Но он не смог найти те ошибки, что нашёл PVS, верно? Да, пусть они делали это для рекламы и самопиара, но ведь польза была?

Это не опенсорс должен их благодарить. Наоборот. Они должны доплачивать опенсорс проектам. Во первых на чем бы они рекламировали свою программку, если бы не было этих проектов? Во вторых они используют имена проектов в рекламных целях, что вроде бы запрещено в лицензиях.

anonymous
()
Ответ на: комментарий от ZenitharChampion

В случае с Firefox степень нарушения серьезнее

Тут не серьезность важна, а факт. Факт того, что это просто очередные отечественные паразиты (хотя сам по себе PVS продукт неплохой, маркетинг только отталкивающий).

Deleted
()
Ответ на: комментарий от Andrey_Karpov_2009

Ничего против ваших трудов не имею, наверняка полезная штука (хоть и не пробовал), но меня не покидает вопрос откуда растут ноги у этой особенности «Рашин бизнеса» в духе «Мы цену нигде писать не будем, даже примерно, даже порядок цен. Звоните/пишите узнавайте»? Просто вы уже далеко не первый такой «Рашин бизнес» который встречается, и у всех вот так.

RiseOfDeath ★★★★
()
Последнее исправление: RiseOfDeath (всего исправлений: 1)
Ответ на: комментарий от anonymous

Во вторых они используют имена проектов в рекламных целях, что вроде бы запрещено в лицензиях.

В каких?

anonymous
()
Ответ на: комментарий от Andrey_Karpov_2009

Наверняка такие мысли были и внутри компании такой вариант рассматривался. Подозреваю, что оценив сложность оптимизатора и некоторый переизбыток компиляторов, в том числе наличие бесплатных, вы порешили не заниматься этим. Я угадал?

А на экзотических архитектурах, типа VLIW Эльбрус, денег не заработаешь.

Собственно ещё один один вопрос - может ли так случиться, что в будущем вы измените своё мнение и всё же произведёте компилятор?

alman ★★★
()
Ответ на: комментарий от RiseOfDeath

Впаривание говна иначе не работает.

anonymous
()
Ответ на: комментарий от alman

Наверняка такие мысли были и внутри компании такой вариант рассматривался. Подозреваю, что оценив сложность оптимизатора и некоторый переизбыток компиляторов, в том числе наличие бесплатных, вы порешили не заниматься этим. Я угадал?

А на экзотических архитектурах, типа VLIW Эльбрус, денег не заработаешь.

Собственно ещё один один вопрос - может ли так случиться, что в будущем вы измените своё мнение и всё же произведёте компилятор?

Зачем нам пятая нога то?!

Мы зарабатываем на продаже инструмента статического анализа кода. Зачем нам какой-то компилятор ещё один делать....

Andrey_Karpov_2009
() автор топика
Ответ на: комментарий от Andrey_Karpov_2009

Мы зарабатываем на продаже инструмента статического анализа кода. Зачем нам какой-то компилятор ещё один делать....

Я не знаю - просто интересуюсь. :)

С другой стороны, бизнес это такая штука, которой иногда помогает диверсификация. Т.ч. зарекаться, что никогда не заинтересуетесь полноценным компилятором, не очень правильно. Впрочем, я не воспринимаю ваши слова как окончательное решение - изменятся условия и, вероятно, вы подумаете о полноценном компиляторе.

Я ведь почему интересуюсь - у меня тут своя архитектура зародилась, а компилятора нет, приходится писать на ассемблере, а это сильно напрягает. Вот, думаю, а вдруг? :))) (не воспринимайте слишком серьёзно)

Ах да, ну ещё причиной может быть «импортозамещение». Вот если посмотреть внимательно, то с первого взгляда у России нет компилятора. Со второго взгляда тоже нет. А то, что есть - или недоступно, или невозможно использовать.

alman ★★★
()
Последнее исправление: alman (всего исправлений: 1)
Ответ на: комментарий от alman

Что за бешеная мысль? Анализирующая часть компилятора решает другие задачи. Эту тоже может, но это бонус. И это все еще малая часть компилятора.

anonymous
()
Ответ на: комментарий от anonymous

И это все еще малая часть компилятора/

Я знаю, у меня есть свой такой анализатор, который парсит сишный код, строит синтаксическое дерево, а потом из него обратно генерирует сишный код.

Имхо, кодогенерация не такая уж и сложная задача. Самое сложное в компиляторе это оптимизатор. Готов услышать опровержения этой мысли.

alman ★★★
()

Блюйте дальше, счастья вам, здоровья...

pascal ★★★
()
Ответ на: комментарий от mandala

Не опасней некоторых фанатичных авторов своих свободных поделок.

Тадаам! Срыв покровов. Хозяйке на заметку.
mandala является не только предателем Свободного сообщества, он является врагом Свободного софта, враг FSF.

anonymous
()
Ответ на: комментарий от alman

Имхо, кодогенерация не такая уж и сложная задача.

Я писал сишный компилятор (не плюсовый). Мягко говоря сильно урезанный.

Ты c++ новее 2003 года вообще видел? Если бы мне сказали бы написать компилятор к этому, то я бы с криками и воплями побежал куда-нибудь далеко.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 2)
Ответ на: комментарий от mandala

Хм? 13? А почему 13?

Как, неужели ты предал сообщество за «30 сребренников»?

Ну а про модераторов ничего не говорю, яснопанятно, что они подстилка для какания Жирного Жлоба.

anonymous
()
Ответ на: комментарий от fornlr

Ты c++ новее 2003 года вообще видел? Если бы мне сказали бы написать компилятор к этому, то я бы с криками и воплями побежал куда-нибудь далеко.

Я бы тоже. Вообще остановился на том, что хотел в своём синтаксическом анализаторе сделать поддержку классов. Из всего С++ мне нужна только концепция классов. Что получилось в результате мне не понравилось.

alman ★★★
()
Ответ на: комментарий от TheAnonymous

Есть мнение, что эти [чудаки на букву М] ещё и GPL нарушают

Наш продукт включает в себя библиотеку glibc, распространяемую под лицензией LGPL. В соответствии с лицензией LGPL, по запросу третьего лица, мы готовы предоставить объектные файлы, которые позволят перекомпоновать наш продукт с использованием другой версии glibc. Мы гарантируем работоспособность нашего продукта только с официальной версией glibc 2.23. Запросы на получение объектных файлов можно отправлять через форму обратной связи.

Andrey_Karpov_2009
() автор топика
Ответ на: комментарий от RiseOfDeath

но меня не покидает вопрос откуда растут ноги у этой особенности «Рашин бизнеса» в духе «Мы цену нигде писать не будем, даже примерно, даже порядок цен. Звоните/пишите узнавайте»?

Это больше похоже на coverity подход, они сначала узнают кучу вопросов, типо сколько кода в конторе сколько человек и тп. потом недели две проверяют контору, после чего выставляют счёт.

ASM ★★
()

Конечно самым идеальным, было бы сделать аналогичную интеграцию на github как в coverity. Проверяя свои открытые продукты сразу с помощью coverity и pvs, можно было бы на практике оценить какой продукт лучше и куда стоит вываливать эпическое кол-во денег для своей проприетарщины.

Но я так понимаю вы пока в начале пути, и подобные вопросы даже не рассматриваете.

ASM ★★
()
Ответ на: комментарий от alman

Я ведь почему интересуюсь - у меня тут своя архитектура зародилась, а компилятора нет, приходится писать на ассемблере, а это сильно напрягает. Вот, думаю, а вдруг? :))) (не воспринимайте слишком серьёзно)

А чем вам llvm в качестве импортазамещения не подходит? Добавьте туда свою архитектуру, поменяйте название на BolgenCompiller, закройте код и дело в шляпе.

ASM ★★
()
Последнее исправление: ASM (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.