Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Новый формат знакомства с PVS-Studio

Блог компании PVS-Studio Управление проектами *Презентации Видеоконференцсвязь

Можно ли создать успешный продукт, не говоря ни слова? Боюсь, что нет. Ведь успешный продукт – это в первую очередь известный продукт. Какой бы замечательный инструмент вы бы ни создали в своём гараже, пока люди о нём не слышали, никто его не захочет купить. С этим сталкиваются абсолютно все компании, которые когда-либо существовали, существуют или будут существовать. Мы не исключение. Встречайте наш новый формат знакомства с продуктом — видеовстреча

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Просмотры 1.3K
Комментарии 2

Анализаторы кода PVS-Studio — российский технологический стартап

Я пиарюсь
PVS-StudioТехнологическое предпринимательство и стартапы — эти темы всегда привлекают большое внимание людей на Хабре. Мой рассказ — о нашей молодой компании «Системы программной верификации» (ООО «СиПроВер»), которая разрабатывает и продает набор статических анализаторов кода PVS-Studio. Сейчас в состав PVS-Studio входят два анализатора: Viva64 для поиска 64-битных ошибок и VivaMP для поиска «параллельных» проблем в исходном коде приложений на языках Си/Си++.
Читать далее о нашем стартапе
Всего голосов 13: ↑10 и ↓3 +7
Просмотры 1K
Комментарии 22

Уроки разработки 64-битных приложений на языке Си/Си++

Блог компании PVS-Studio
Мы регулярно пишем статьи посвященные разработке и тестированию 64-битных программ на языке Си/Си++. Каждая из статей представляет взгляд на задачу разработки 64-битных программ с разных точек зрения. Но существенная часть информации в них повторяется, так как необходимо знакомить читателя с проблематикой и вводить различные определения. Это, к сожалению, делает чтение подборки статей скучным занятием и соответственно не позволяет всесторонне изучить вопросы разработки 64-битных приложений.

Мы решили объединить все наши знания в единый труд, в котором будут рассмотрены сразу все вопросы, касающиеся 64-битного программирования. Для оформления в виде статьи материала оказалась слишком много и мы решили представить его в виде курса уроков.

Кратко опишу курс "Уроки разработки 64-битных приложений на языке Си/Си++" и приведу его содержание.
Читать дальше →
Всего голосов 68: ↑59 и ↓9 +50
Просмотры 5.8K
Комментарии 50

Статический анализ Си++ кода и новый стандарт языка C++0x

Блог компании PVS-Studio
Аннотация
Введение
1. auto
2. decltype
3. Ссылка на временный объект (R-value reference)
4. Правые угловые скобки
5. Лямбда-функции (Lambdas)
6. Suffix return type syntax
7. static_assert
8. nullptr
9. Новые стандартные классы
10. Новые направления в развитии статических анализаторов кода
Заключение
Библиографический список

Аннотация


В статье рассмотрены новые возможности языка Си++, описанные в стандарте C++0x и поддержанные в Visual Studio 2010. На примере PVS-Studio рассмотрено, как изменения языка отразятся на инструментах статического анализа кода.
Читать дальше →
Всего голосов 93: ↑91 и ↓2 +89
Просмотры 5K
Комментарии 43

Получение отклика от потенциальных пользователей

Блог компании PVS-Studio

Не так просто получить отклик и мнение от потенциального клиента, если ты являешься небольшим стартапом. В случае большой компании, как мне кажется, дело обстоит проще. Можно потратить деньги на маркетинговые исследования. Можно пообщаться с уже имеющими клиентами, которые приобретают хотя и другие, но схожие объекты или услуги. В случае нового стартапа, клиентской базы нет, денег тоже нет. И встает задача с максимальной эффективностью, попытаться пообщаться с теми, кто потенциально может стать клиентом и скорректировать свое развитие, если спрос в чем-то расходится с предложением. Другими словами выявить, что следует поправить и предложить, для привлечения большего интереса.

Расскажу на собственном примере о наших экспериментах.
Всего голосов 29: ↑20 и ↓9 +11
Просмотры 1K
Комментарии 44

Статический анализ исходного кода на примере WinMerge

Блог компании PVS-Studio
Сегодня я хочу посвятить пост тематике, почему инструменты анализа исходного кода полезны вне зависимости от уровня знаний и опыта программиста. А польза такого анализа будет продемонстрирована на примере инструмента, который известен всем программистам — WinMerge.

Читать дальше →
Всего голосов 56: ↑53 и ↓3 +50
Просмотры 2.7K
Комментарии 28

Разница в подходах анализа кода компилятором и выделенным инструментом

Блог компании Intel
У компилятора и сторонних инструментов статического анализа кода есть общая задача — выявление опасных фрагментов кода. Однако существует существенная разница в том, анализ какого типа они осуществляют. Я попробую на примере компилятора Intel C++ и анализатора PVS-Studio продемонстрировать различия подходов, и пояснить, чем они вызваны.

В качестве испытуемого на этот раз выступит проект Notepad++ версии 5.8.2.

Читать дальше →
Всего голосов 64: ↑63 и ↓1 +62
Просмотры 15K
Комментарии 25

Собираю страшненькое от программистов

Блог компании Intel
Уважаемые коллеги-программисты, предлагаю поделиться в комментариях примерами ошибок, которые на ваш взгляд можно обнаружить в программе еще на этапе ее написания. Наверняка у всех были ситуации, когда исправляя после часовой отладки ляп, вы вздыхали «эх, ну что же мне компилятор здесь предупреждение не выдал».

Мне интересны в первую очередь паттерны ошибок, допускаемых в программах на Си++. Но я сознательно не стал помещать этот пост в раздел «Си++». Приводите примеры ошибок из других языков. Часто рассматривая ошибку, можно придумать ее аналог на другом языке.

Ошибки мне нужны для создания нового уникального набора правил диагностики ошибок общего типа. Правил, которые действительно актуальны, которые найдут ошибки не в абстрактных приложениях, а в данных нам в ощущениях. Неинтересно уже искать в тексте завалявшиеся случайно триграфы. Ни разу не видел ошибку, связанную с триграфом. А вот опечаток, где для очистки строки вместо str.clear() написано str.empty(), полным-полно. Например, я писал про такой пример здесь. И ведь такие ошибки не находятся существующими инструментами! Поэтому мы и идем по пути создания нового, а не повторения старого.

Теперь попробую пояснить, про какие же ошибки мне хочется услышать и как.

Читать дальше →
Всего голосов 63: ↑54 и ↓9 +45
Просмотры 25K
Комментарии 82

Статический анализ: ошибки в медиаплеере и безглючная аська

Блог компании PVS-Studio
Продолжу экскурсию по ошибкам в программах и демонстрацию полезности статического анализа кода.

Это мой последний пост про пока недоступную для скачиванию версию PVS-Studio. Планирую, что через неделю вы уже сможете попробовать первую beta-версию с новым набором правил общего назначения.

Рассмотрим два проекта. Первый — Fennec Media Project. Это универсальный медиа-плеер ориентированный на воспроизведение аудио и видео в высоком разрешении. В комплект исходных кодов входит множество модулей расширения (plugins) и кодеков, но анализироваться будет только сам плеер. Исходный код последней на данный момент версии 1.2 Alpha доступен здесь.

Второй проект — qutIM. Это кроссплатформенный клиент мгновенного обмена сообщениями с открытым исходным кодом. Был проанализирован код на момент начала ноября 2010 года. Набор исходных кодов был предоставлен мне одним из разработчиков, но вы также можете скачать исходный код с официального сайта. Этот разработчик, кстати, присутствует здесь — gorthauer87.

Посмотреть на лики зла
Всего голосов 85: ↑73.5 и ↓11.5 +62
Просмотры 1.5K
Комментарии 69

Трепещи, мир! Мы выпустили PVS-Studio 4.00 с бесплатным анализатором общего назначения

Блог компании PVS-Studio
Check TortoiseSVN
Предлагаем вниманию программистов новый инструмент для поиска ошибок в исходном коде приложений на языке Си/Си++. В рамках анализатора PVS-Studio реализован новый набор правил общего назначения. Эта функциональность на данный момент является бесплатной. Вы можете скачать PVS-Studio по адресу http://www.viva64.com/ru/pvs-studio-download/.

В статье кратко рассказывается о новых возможностях PVS-Studio. На примере статического анализа исходного кода проекта TortoiseSVN будет продемонстрировано использование новых диагностических возможностей.
Читать дальше →
Всего голосов 88: ↑78 и ↓10 +68
Просмотры 1.9K
Комментарии 170

Статический анализ и регулярные выражения

Блог компании PVS-Studio
Я занимаюсь разработкой статического анализатор кода PVS-Studio для анализа программ на языке Си/Си++. После появления в PVS-Studio 4.00 анализа общего назначения мы получили множество откликов, как положительных, так и отрицательных. Кстати, предлагаю скачать новую версию PVS-Studio, в которой благодаря откликам людей было поправлено большое количество ошибок и недочетов.

В ходе обсуждения PVS-Studio 4.00 вновь встал вопрос, можно ли реализовывать большинство проверок, используя регулярные выражения, и не переусложняем ли мы, говоря, что обязательно необходимо строить и работать с деревом разбора. Вот пример комментария на эту тему. Подобный вопрос возникает уже не в первый раз, и я решил написать статью, чтобы объяснить, почему пытаться использовать регулярные выражения для анализа Си/Си++ кода — эта очень плохая идея.

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

Читать дальше →
Всего голосов 43: ↑40 и ↓3 +37
Просмотры 5.4K
Комментарии 37

Почему PVS-Studio 4.00 будет платным решением

Блог компании PVS-Studio
К сожалению, нам придется сделать статический анализатор PVS-Studio 4.00 полностью платным. Мы планировали сделать платным только набор 64-битных правил, а анализ общего назначения и анализ OpenMP-программ свободными для использования. Но мир суров и не поддержал наши начинания.
Читать дальше →
Всего голосов 85: ↑46 и ↓39 +7
Просмотры 985
Комментарии 90

Опыт статического анализа Qt-программы с использованием PVS-Studio

C++ *
imageДанная статья – результат моего первого опыта статического анализа достаточно большой программы (1665 файлов с исходными текстами на данный момент). Кроме того, это мой первый опыт использования среды Microsoft Visual Studio. Разработка анализируемой программы велась исключительно в Ubuntu, Eclipse CDT, компилятор GCC.

Читать дальше →
Всего голосов 46: ↑36 и ↓10 +26
Просмотры 4.2K
Комментарии 39

Последствия использования технологии Copy-Paste при программировании на Си++ и как с этим быть

Блог компании PVS-Studio
Copy-Paste, Ctrl-C, Ctrl-V
Я занимаюсь созданием анализатора PVS-Studio, выявляющего ошибки в исходном коде приложений на языке C/C++/C++0x. В связи с этим мне приходится просматривать большой объем исходного кода различных приложений, где с помощью PVS-Studio были обнаружены подозрительные участки кода. У меня накопилось достаточно примеров, в которых хорошо видно, когда ошибка появилась на свет из-за копирования участка кода и его модификации. Конечно, это не новая идея, что использовать Copy-Paste при программировании плохо. Однако попробуем не отделываться рекомендацией «не копируйте код» и подойдем к этой теме более внимательно.
Читать дальше →
Всего голосов 94: ↑82 и ↓12 +70
Просмотры 5.5K
Комментарии 50

Intel IPP Samples for Windows — работа над ошибками

Блог компании PVS-Studio
Проверка Intel IPP Samples for Windows
Это моя очередная заметка о том, как PVS-Studio делает программы более надёжными. То есть где, и какие ошибки он обнаруживает. На этот раз под молоток попали примеры, демонстрирующие работу с библиотекой IPP 7.0 (Intel Performance Primitives Library). Хотел, вначале, этот пост поместить в блог Intel, но потом решил, что это будет совсем уже...
Читать дальше →
Всего голосов 40: ↑29 и ↓11 +18
Просмотры 2.3K
Комментарии 15

По колено в г… коде

Кодобред
по колено в Си++
Я по роду своей деятельности много и часто медитирую над разнообразнейшим C++ кодом. И, как говорится, у меня накопилось. Не могу больше нести это в себе. Извините, сейчас и с вами поделюсь.

Читать дальше →
Всего голосов 183: ↑131 и ↓52 +79
Просмотры 8.9K
Комментарии 165

Как уменьшить вероятность ошибки на этапе написания кода. Заметка N1

Блог компании PVS-Studio
Check Miranda IM
Я добрался до кода широко известного клиента мгновенных сообщений Miranda IM. Вместе с различными плагинами это достаточно большой проект, размер которого составляет около 950 тысяч строк кода на C и C++. И, как в любом солидном проекте с историей развития, в нем имеется немалое количество ошибок и опечаток.

Рассматривая дефекты в различных приложениях, я заметил некоторые закономерности. И сейчас на примере дефектов, найденных в Miranda IM, я попробую сформулировать некоторые рекомендации, которые позволят избежать многих ошибок и опечаток ещё на этапе написания кода.

Читать дальше →
Всего голосов 130: ↑120 и ↓10 +110
Просмотры 4K
Комментарии 102

Трудности сравнения анализаторов кода или не забывайте об удобстве использования

Я пиарюсь


Желание пользователей сравнить между собой разные анализаторы кода понятно и естественно. Однако реализовать это желание совсем не так просто как может показаться на первый взгляд. Дело в том, что непонятно какие конкретно факторы между собой сравнивать.

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

Вы сомневаетесь, что сравнивать указанные параметры бессмысленно? Приведем несколько примеров.

Читать дальше →
Всего голосов 21: ↑17 и ↓4 +13
Просмотры 525
Комментарии 10

Как уменьшить вероятность ошибки на этапе написания кода. Заметка N2

Блог компании PVS-Studio
Operator ?:
Это вторая статья о том, как можно избежать ряда ошибок еще на этапе написания кода. В предыдущей заметке уже упоминался совет избегать множества вычислений в одном выражении. Однако, этот вопрос требует более пристального внимания. Рассмотрим опасность сложных условий, и как можно предупредить многие логические ошибки.

Читать дальше →
Всего голосов 97: ↑83 и ↓14 +69
Просмотры 3.1K
Комментарии 57

Проверка пяти открытых проектов статическими анализаторами общего назначения

Я пиарюсь


В статье «Трудности сравнения анализаторов кода или не забывайте об удобстве использования» [1] говорится о том, что сравнить между собой два инструмента не так просто как кажется, потому что помимо собственно технических характеристик анализаторов очень большое значение имеет такой параметр как удобство использования.

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

В статье показаны ошибки, выявленные с помощью статического анализатора кода, встроенного в Visual Studio 2010. Исследование проводилось на пяти open source проектах. Эти же проекты были проверены с помощью PVS-Studio. Приведены результаты сравнения этих двух инструментов.

Читать дальше →
Всего голосов 37: ↑32 и ↓5 +27
Просмотры 2K
Комментарии 5