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

Большой Калькулятор выходит из под контроля

Блог компании PVS-Studio Разработка веб-сайтов *C++ *
Calculator

Я хочу посвятить эту статью проблеме, о которой мало кто задумывается. Все шире и шире применяется моделирование различных процессов с помощью компьютера. Это замечательно, возможностью экономить время и материалы на бессмысленные химические, биологические, физические и прочие эксперименты. Обдув модели крыла на компьютере может в несколько раз сократить количество макетов, которое затем будет испытываться в реальной аэродинамической трубе. Численным экспериментам доверяют всё больше. Однако за торжеством численного моделирования никто не обращает внимания на рост сложности программ. В компьютере и к программам видят всего лишь инструмент для получения результата. Меня тревожит, что далеко не все знают и задумываются о том, что рост размера программы ведет к нелинейному росту числа ошибок. Опасно применять компьютер как просто большой калькулятор. Я и думаю, надо доносить эту мысль до других людей.
Читать дальше →
Всего голосов 95: ↑75 и ↓20 +55
Просмотры 40K
Комментарии 72

WTF?

Блог компании PVS-Studio Программирование *C++ *
PVS-Studio, WTF?
Меня не покидает когнитивный диссонанс. На форумах обсуждаются возвышенные идеи о написании сверх надежных классов, кто-то рассказывает, что его проект собирается с ключами -Wall -Wextra -pedantic -Weffc++. Господи, где все эти достижения науки и техники? Почему я вижу кругом глупейшие ошибки? Может быть, со мной что-то не так?

Читать дальше →
Всего голосов 183: ↑130 и ↓53 +77
Просмотры 43K
Комментарии 49

Проверка VirtualDub

Блог компании PVS-Studio Совершенный код *C++ *
PVS-Studio, VirtualDub
Только что, я сел и проверил проект VirtualDub с помощью PVS-Studio. Выбор был случаен. Я считаю, самое главное регулярно проверять/перепроверять различные проекты, чтобы показать, как развивается анализатор кода PVS-Studio. А какой проект будет проверен, не так важно. Ошибки есть везде. Проект VirtualDub мы уже проверяли в 2011 году, но тогда почти ничего интересного не нашлось. Вот я и решил посмотреть, как обстоят дела, спустя 2 года.

Читать дальше →
Всего голосов 90: ↑81 и ↓9 +72
Просмотры 30K
Комментарии 33

Побочный результат: проверяем CryEngine 3 SDK с помощью PVS-Studio

Блог компании PVS-Studio C++ *Разработка игр *

Мы закончили сравнивать статические анализаторы кода Cppcheck, PVS-Studio и анализатор встроенный в Visual Studio 2013. В ходе этого было проверено более 10 открытых проектов. И про некоторые из них можно написать статьи. Вот очередная такая статья о результатах проверки проекта CryEngine 3 SDK.
Читать дальше →
Всего голосов 88: ↑77 и ↓11 +66
Просмотры 25K
Комментарии 11

Математикам доверяй, но проверяй

Блог компании PVS-Studio C++ *C *
PVS-Studio. You shall not pass!
Я временами бываю озадачен, рассматривая ошибки в очередном программном проекте. Многие из этих ошибок живут в проектах годами. Смотришь на сотню ляпов в коде и удивляешься, как программа вообще работает. И ведь как-то работает. Ей даже пользуются. Причем, я говорю не о коде, рисующем покемона в игре. А, например, о математических библиотеках. Да, вы верно догадались. В этой статье пойдет речь о проверке кода математической библиотеки Scilab.
Читать дальше →
Всего голосов 106: ↑87 и ↓19 +68
Просмотры 37K
Комментарии 66

Занимательная археология. Или PVS-Studio проверяет Microsoft Word 1.1a

Блог компании PVS-Studio C *
Череп единорога
Недавно компания Microsoft сделала подарок всем программистам, которые хотят покопаться в чем-то интересном. Microsoft открыли исходный код MS-DOS v 1.1, v 2.0 и Word for Windows 1.1a. Операционная система MS-DOS написана на ассемблере, и к ней анализатор не применим. А вот Word написан на языке Си. Исходным кодам Word 1.1a почти 25 лет, однако нам кое-как удалось их проверить. Конечно никакой практической ценности в этой проверке нет. Just for fun.
Читать дальше →
Всего голосов 126: ↑112 и ↓14 +98
Просмотры 44K
Комментарии 49

Проверка фреймворка Qt 5

Блог компании PVS-Studio Разработка веб-сайтов *Qt *
Qt and PVS-Studio
Инструменты статического анализа кода позволяют устранить множество ошибок ещё на этапе написания текста программы. Например, можно быстро выявить и устранить опечатки. Некоторые программисты искренне уверены, что они не делают опечатки и глупые ошибки. Это не так. Такие ошибки делают все. Эта статья послужит хорошим демонстрационным примером. Опечатки можно найти даже в таком качественном и оттестированном проекте, как Qt.
Читать дальше →
Всего голосов 107: ↑95 и ↓12 +83
Просмотры 25K
Комментарии 34

Эффект последней строки

Блог компании PVS-Studio Программирование *Совершенный код *
Copy-Paste
Я изучил множество ошибок, возникающих в результате копирования кода. И утверждаю, что чаще всего ошибки допускают в последнем фрагменте однотипного кода. Ранее я не встречал в книгах описания этого феномена, поэтому и решил о нём написать. Я назвал его «эффектом последней строки».
Читать дальше →
Всего голосов 146: ↑129 и ↓17 +112
Просмотры 49K
Комментарии 52

Легко и просто проверяем Firefox с помощью PVS-Studio Standalone

Блог компании PVS-Studio Firefox Open source *
PVS-Studio and Firefox
Три года назад мы уже проверяли Mozilla Firefox с помощью анализатора PVS-Studio. Тогда это было неудобно и затруднительно. Для Firefox отсутствует проектный файл для Visual Studio. Сборка осуществляется с помощью make-файлов. Поэтому просто взять и проверить проект нельзя. Требовалось интегрировать PVS-Studio в систему сборки, что оказалось трудной задачей. В результате, как мне помнится, была проанализирована только часть проекта. Но всё поменялось, когда появился PVS-Studio Standalone. Теперь можно отследить все запуски компиляторов и легко проверить проект.
Читать дальше →
Всего голосов 80: ↑62 и ↓18 +44
Просмотры 24K
Комментарии 52

Проверяем Wine с помощью PVS-Studio и Clang Static Analyzer

Блог компании PVS-Studio Open source *C *
PVS-Studio, Clang, Wine
В статье хочу рассказать о проверке проекта Wine такими статическими анализаторами C/C++ кода, как PVS-Studio и Clang Static Analyzer.
Читать дальше →
Всего голосов 65: ↑56 и ↓9 +47
Просмотры 21K
Комментарии 28

Asterisk: PVS-Studio заинтересовался телефонией

Блог компании PVS-Studio Open source *C *


Asterisk — свободное решение компьютерной телефонии с открытым исходным кодом от компании Digium. Приложение работает на таких операционных системах, как Linux, FreeBSD, OpenBSD, Solaris. Asterisk в комплексе с необходимым оборудованием обладает всеми возможностями классической АТС, поддерживает множество VoIP-протоколов и предоставляет богатые функции управления звонками.

В данной статье будут рассмотрены результаты проверки Asterisk, полученные с помощью PVS-Studio 5.18.

Проект, по всей видимости, проверяется анализатором Coverity, о чём свидетельствуют комментарии вида:

/* Ignore check_return warning from Coverity for ast_exists_extension below */

Тем не менее, я заметил некоторые досадные опечатки. Попробуем разобраться в них и в других подозрительных местах. Исходный код взят из SVN репозитория проекта.

Читать дальше →
Всего голосов 37: ↑23 и ↓14 +9
Просмотры 11K
Комментарии 13

Заметка про проверку PHP

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


PHP — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.

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

В данной статье будут рассмотрены результаты проверки интерпретатора PHP, полученные с помощью PVS-Studio 5.18.

Читать дальше →
Всего голосов 77: ↑72 и ↓5 +67
Просмотры 29K
Комментарии 35

Давай поиграем в игру

Блог компании PVS-Studio C++ *C *
PVS-Studio. Давай поиграем в игру.
Авторы анализатора PVS-Studio предлагают вам проверить свою внимательность.

Анализаторы кода работают без устали и умеют находить множество ошибок, которые сложно заметить. Мы отобрали некоторые фрагменты кода, в которых мы выявили ошибки с помощью PVS-Studio. Все фрагменты взяты из известных Open-Source проектов.

Предлагаем вам посоревноваться с анализаторами в прозорливости и попробовать самостоятельно найти ошибки. Вам будет предложено 15 случайно выбранных заданий. За верный ответ насчитывается одно очко, если он дан в течение 1 минуты. Фрагменты кода короткие, и 1 минута это честное ограничение.
Читать дальше →
Всего голосов 90: ↑83 и ↓7 +76
Просмотры 31K
Комментарии 114

Проверяем Oracle VM VirtualBox. Часть 1

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

Виртуальные машины используются для самых разных нужд. Сам я уже не один год использую VirtualBox для тестирования ПО и просто изучения различных дистрибутивов Linux. Собственно, после длительного использования, периодически сталкиваясь с неопределённым поведением, я решил воспользоваться своим опытом в проверке open-source проектов и проанализировать исходный код Oracle VM Virtual Box.

VirtualBox является кроссплатформенным приложением виртуализации. Что это значит? Во-первых, он работает на компьютерах с процессорами Intel или AMD под управлением операционных систем Windows, Mac, Linux и других. Во-вторых, он расширяет возможности вашего компьютера тем, что позволяет работать множеству операционных систем одновременно (внутри виртуальных машин).

Проект оказался настолько богат проблемными местами, что описывая только те места, в которых ошибка более-менее очевидна, мне придётся разбить материал на две статьи.

В комментариях к статьям часто спрашивают: к чему приводит ошибка в runtime'е? В подавляющем большинстве мы не используем проверяемые проекты и, тем более, не отлаживаем их. На написание этой статьи меня сподвигли проблемы при регулярном использовании VirutalBox. Я решил, что буду оставлять оригинальный, но немного сокращённый комментарий, а если его не было, то добавлю комментарий из шапки файла. Пусть каждый попробует узнать свой глюк.
Читать дальше →
Всего голосов 53: ↑49 и ↓4 +45
Просмотры 36K
Комментарии 60

Проверяем Oracle VM VirtualBox. Часть 2

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

Виртуальные машины используются для самых разных нужд. Сам я уже не один год использую VirtualBox для тестирования ПО и просто изучения различных дистрибутивов Linux, собственно, после длительного использования, периодически сталкиваясь с неопределённым поведением, я решил воспользоваться своим опытом в проверке open-source проектов и проанализировать исходный код Oracle VM Virtual Box.

В этой статье я продолжу описывать многочисленные подозрительные места, найденные в проекте.
Читать дальше →
Всего голосов 37: ↑33 и ↓4 +29
Просмотры 18K
Комментарии 14

Единорог заинтересовался KDE

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

KDE (сокращение от K Desktop Environment) — среда рабочего стола, преимущественно для Linux и других UNIX-подобных систем. Если простым языком, то это та штука, которая отвечает за всё графическое оформление. Среда построена на основе кроссплатформенного инструментария разработки пользовательского интерфейса Qt. Разработкой занимаются несколько сотен программистов со всего мира, преданных идее свободного программного обеспечения. KDE предлагает полный набор приложений пользовательского окружения, который позволяет взаимодействовать с операционной системой в современном графическом интерфейсе. Давайте же посмотрим, что у KDE под капотом.
Читать дальше →
Всего голосов 47: ↑40 и ↓7 +33
Просмотры 22K
Комментарии 29

Проверка библиотеки Network Security Services

Блог компании PVS-Studio Информационная безопасность *C *

Network Security Services (NSS) — это набор библиотек, разработанных для поддержки кроссплатформенной разработки защищенных клиентских и серверных приложений. Библиотека используется для криптографии в браузерах Firefox и Chrome, и после недавно найденной уязвимости в проверке подписей сертификатов, я решил тоже взглянуть на этот проект.
Читать дальше →
Всего голосов 24: ↑20 и ↓4 +16
Просмотры 6.5K
Комментарии 22

Тяп-ляп, проверил библиотеки Visual C++ 2013 (update 3)

Блог компании PVS-Studio C++ *Visual Studio *
PVS-Studio and Visual Studio 2013Мне предложили проверить библиотеки, входящие в Visual Studio 2013. Ничего особенно примечательного я не нашёл. Только несколько мелких ошибок и недочётов. Интригующую статью из этого не сделаешь, но я всё равно опишу замеченные недостатки. Надеюсь, это сделает библиотеки чуть лучше, и подвигнет авторов провести более тщательную проверку. У меня нет файлов проектов для сборки библиотек. Поэтому я проверял файлы кое-как, и много могло быть пропущено.
Читать дальше →
Всего голосов 44: ↑38 и ↓6 +32
Просмотры 26K
Комментарии 13

Проект Miranda NG получает приз «дикие указатели» (часть вторая)

Блог компании PVS-Studio Мессенджеры *C++ *C *Разработка под Windows *
Miranda NG
Продолжим рассматривать ошибки, которые удалось обнаружить в проекте Miranda NG с помощью статического анализатора кода PVS-Studio. В прошлый раз мы говорили об указателях и работе с памятью. Теперь поговорим об ошибках общего плана, которые, в основном, связаны с неаккуратностью и опечатками.
Читать дальше →
Всего голосов 70: ↑63 и ↓7 +56
Просмотры 22K
Комментарии 102