02.09.2010
Щупаем новый Intel Parallel Studio XE 2011 betaВот, наконец, добрался попробовать Си++ компилятор, входящий в состав Intel Parallel Studio XE 2011 beta. »
30.08.2010
Пять дней на исправление ошибки в два символа, или миф о всемогущих технологиях при разработке программВ этом блоге нередко можно почитать о том, как тот или иной программный инструмент, или технология разработки программ помогает делать меньше ошибок, быстрее их находить, легче исправлять. »
30.08.2010
Д'Артаньян и интернет, или работа над проблемой битых ссылокГоспода, хватит уже рассматривать ссылки исключительно в контексте их количества, купли/продажи и считать PR сайта, где они расположены. »

22.07.2010
Использование PVS-Studio вместе с системами continuous integrationВ статье показаны приемы организации работы анализатора кода PVS-Studio вместе с системами непрерывной интеграции (continuous integration). »
06.07.2010
Сравнение возможностей PVS-Studio и Visual Studio 2010 по выявлению дефектов в 64-битных программахВ статье сравниваются три механизма анализа кода с точки зрения выявления 64-битных ошибок: компилятор Visual C++2010, компонент Code Analysis for C/C++ входящий в состав Visual Studio 2010 Premium/Ultimate и анализатор Viva64 входящий в состав PVS-Studio 3.60. »
29.06.2010
Коллекция примеров 64-битных ошибок в реальных программахСтатья представляет собой наиболее полную коллекцию примеров 64-битных ошибок на языках Си и Си++. »
16.08.2010
Выпущена новая версия анализатора кода PVS-Studio 3.62 »
22.07.2010
Выпущена новая версия анализатора кода PVS-Studio 3.61 »
10.06.2010
Выпущена новая версия анализатора кода PVS-Studio 3.60. »
|
Документация

История версий
PVS-Studio 3.62 (16 августа 2010)
- Добавлено новое правило V123: Allocation of memory by the pattern "(X*)malloc(sizeof(Y))" where the sizes of X and Y types are not equal.
- Упрощена работа с PVS-Studio из командной строки (без файла проекта Visual Studio).
- По-умолчанию не выдаются сообщения об ошибках в tli/tlh файлах.
PVS-Studio 3.61 (22 июля 2010)
- Исправлено падение в VS2010 при выставленном параметре EnableAllWarnings в настройках проекта.
- Исправлена ошибка – проверялись даже те проекты, которые были исключены из сборки в Configuration Manager.
- Улучшен анализ кода.
PVS-Studio 3.60 (10 июня 2010)
- Добавлено новое правило V122: Memsize type is used in the struct/class.
- Добавлено новое правило V303: The function is deprecated in the Win64 system. It is safer to use the NewFOO function.
- Добавлено новое правило V320: A call of the FOO function will lead to a buffer overflow or underflow in a 64-bit system.
- Добавлено новое правило V2001: Consider using the extended version of the FOO function here.
- Добавлено новое правило V2002: Consider using the 'Ptr' version of the FOO function here.
PVS-Studio 3.53 (7 мая 2010)
- Добавлена возможность задать вопрос разработчикам PVS-Studio про сообщения, выдаваемые анализатором кода (команда "What Is It").
- Значительно улучшен анализ кода, связанного с использованием неименованных структур.
- Исправлена ошибка, приводившая в некоторых случаях к неверному вычислению размера структур.
PVS-Studio 3.52 (27 апреля 2010)
- Добавлена новая online справочная система. Старая справочная система
интегрировалась в MSDN. По некоторым причинам это неудобно (как пользователям, так и разработчикам). Теперь PVS-Studio будет открывать справку на нашем сайте. От интеграции с MSDN мы отказались. И, как и прежде, доступна pdf-версия документации.
- Отказались от поддержки Windows 2000.
- Удалена страница настроек "Exclude From Analysis" - вместо нее
страница "Don't Check Files".
- Улучшена работа в Visual Studio 2010.
- Исправлена проблема с интеграцией в VS2010 при повторной инсталляции.
- Исправлена работа функции "Mark As False Alarm" с read-only файлами.
PVS-Studio 3.51 (16 апреля 2010)
- PVS-Studio поддерживает работу в Visual Studio 2010 RTM.
- Добавлено новое правило V003: Unrecognized error found...
- Добавлено новое правило V121: Implicit conversion of the type of 'new' operator's argument to size_t type.
- Добавлена возможность исключить из анализа файлы по маске (PVS-Studio Options, вкладка Don't Check Files).
- Переделан интерфейс страницы настроек Exclude From Analysis.
- Убрана опция MoreThan2Gb из страницы настроек Viva64 (опция устарела и более не имеет смысла).
- При проверке кода из командной строки надо указывать тип анализатора (Viva64 или VivaMP).
- Снижен приоритет процесса анализатора, что позволяет комфортно работать на машине во время проверки кода.
PVS-Studio 3.50 (26 марта 2010)
- PVS-Studio поддерживает работу в Visual Studio 2010 RC. Хотя официальный выпуск Visual Studio еще не состоялся, мы уже добавили поддержку этой среды в анализатор. Сейчас PVS-Studio интегрируется в Visual Studio 2010 и может проверять проекты в этой среде. В Visual Studio 2010 изменена справочная система, поэтому пока справка от PVS-Studio не интегрируется в документацию, как это делается в Visual Studio 2005/2008. Но вы по-прежнему можете пользоваться online-справкой. Поддержка Visual Studio 2010 RC реализована не полностью.
- Доступна PDF-версия справочной системы. Теперь в дистрибутиве с PVS-Studio идет 50-страничный PDF-документ. Это полная копия нашей справочной системы (которая интегрируется в MSDN в Visual Studio 2005/2008 или доступна online).
- В PVS-Studio появился механизм автоматического определения новых версий инструмента на нашем сайте. Определение новых версий контролируется через опцию CheckForNewVersions вкладки настроек "Common Analyzer Settings". В случае если опция CheckForNewVersions имеет значения True, то при запуске проверки кода (команды Check Current File, Check Current Project, Check Solution меню PVS-Studio) выполняется загрузка специального текстового файла с сайта www.viva64.com. В этом файле прописан номер самой последней версии PVS-Studio, доступной на сайте. Если версия на сайте окажется новее, чем версия, установленная у пользователя, то пользователь увидит запрос на обновление. В случае разрешения этого обновления запустится специальное отдельное приложение PVS-Studio-Updater, которое автоматически загрузит новый дистрибутив PVS-Studio с сайта и запустит его установку. В случае если опция CheckForNewVersions установлена в False, то проверка новой версии производиться не будет.
- Реализована поддержка стандарта C++0x на уровне, на котором она осуществлена в Visual Studio 2010. Реализована поддержка лямбда-выражений, auto, decltype, static_assert, nullptr и так далее. В дальнейшем, с развитием поддержки C++0x в Visual C++, анализатор PVS-Studio также будет поддерживать новые возможности языка Си++.
- Стало возможно запускать проверку проектов с помощью PVS-Studio не из Visual Studio, а с помощью командой строки. Обратите внимание, что речь идет все равно о проверке из Visual Studio с использованием файлов проектов (.vcproj) и решений (.sln), но при этом запуск анализа будет осуществляться не из IDE, а из командной строки. Такой вариант запуска удобен для регулярной проверки кода с помощью систем сборки (build system) или систем непрерывной интеграции (continuous integration system).
- Добавлено новое правило V1212: Data race risk. When accessing the array 'foo' in a parallel loop, different indexes are used for writing and reading.
- В этой версии инструмента мы ввели сертификат подписи кода. Это позволит пользователям быть уверенным в подлинности дистрибутива и получать меньше сообщений от операционной системы при установке приложения.
PVS-Studio 3.45 (1 февраля 2010)
- Существенно улучшена работа анализатора с шаблонами.
- Улучшена работа на многоядерных системах.
PVS-Studio 3.44 (21 января 2010)
- Частичная поддержка проверки кода для процессоров Itanium. Теперь код, который собирается в Visual Studio Team System для процессоров Itanium также можно проверять с помощью анализатора. Анализ выполняется на системах x86 и x64, запуск на Itanium пока не реализован.
- Сокращение количества ложных срабатываний анализатора при анализе доступа к массивам. Теперь анализатор в ряде случаев "понимает" диапазоны значений в цикле for и не выводит лишних сообщений про доступе к массивам с помощью таких индексов. Например: for (int i = 0; i < 8; i++) arr[i] = foo(); // нет сообщения анализатора.
- Сокращенено количество ложных сообщений анализатора - введен список типов данных, которые не образуют большие массивы. Например, HWND, CButton. Пользователь может составлять свои списки типов.
- Исправлена ошибка в работе инсталятора при установке программы в папку, отличную от папки по-умолчанию.
PVS-Studio 3.43 (28 декабря 2009)
- Удалена опция ShowAllErrorsInString (теперь она всегда имеет значение true).
- Новое правило V120: Member operator[] of object 'foo' declared with 32-bit type argument, but called with memsize type argument.
- Новое правило V302: Member operator[] of 'foo' class has a 32-bit type argument. Use memsize-type here.
- Улучшен анализ operator[].
- Исправлена ошибка с долгим удалением программы при многократной установке "поверх".
- Исправлена ошибка анализа файлов с символом "^" в имени.
PVS-Studio 3.42 (9 декабря 2009)
- Улучшена диагностика ошибок с магическими числами. Теперь в сообщении о проблеме выдается больше информации, что позволяет более гибко использовать фильтры.
- Исправлена ошибка при работе с прекомпилированными заголовочными файлами специального типа.
- Опция DoTemplateInstantiate (выполнять инстанцирования шаблонов) теперь по умолчанию включена.
- Исправлена ошибка с зависанием препроцессора при большом количестве сообщений препроцессора.
- Улучшен анализ operator[].
PVS-Studio 3.41 (30 ноября 2009)
- Исправлена ошибка анализа файлов с одинаковыми именами при работе на многоядерной машине.
- Исправлена ошибка некорректной диагностики некоторых типов cast-выражений.
- Существенно улучшен разбор перегруженных функций в анализаторе.
- Добавлена диагностика некорректного использования time_t типа.
- Добавлена обработка специальных параметров в настройках файлов проекта Visual C++.
PVS-Studio 3.40 (23 ноября 2009)
- Добавлена возможность "Mark as False Alarm". Благодаря этому возможно пометить в исходном коде те строки, в которых происходит ложное срабатывание анализатора кода. После разметки, анализатор более не будет выдавать диагностических сообщений на такой код. Это позволяет более удобно постоянно использовать анализатор в процессе разработки программного обеспечения для проверки нового кода.
- Добавлена поддержка Project Property Sheets - механизма удобной настройки проектов Visual Studio.
- При проверке параллельных программ анализатор может выполнять два прохода по коду, что позволяет собрать больше информации и выполнить более точную диагностику некоторых ошибок.
PVS-Studio 3.30 (25 сентября 2009)
- В PVS-Studio добавлена возможность проверки 32-битных проектов для оценки сложности и стоимости миграции кода на 64-битные системы.
- Добавлено новое правило для анализа 64-битного кода V118: malloc() function accepts a dangerous expression in the capacity of an argument.
- Добавлено новое правило для анализа 64-битного кода V119: More than one sizeof() operators are used in one expression.
- Добавлено новое правило для анализа параллельного кода V1211: The use of 'flush' directive has no sense for private '%1%' variable, and can reduce performance.
- Улучшена совместная работа с Intel C++ Compiler (исправлено падение при попытке проверки кода с установленным Intel C++ Compiler).
- Улучшена поддержка локализованных версий Visual Studio.
PVS-Studio 3.20 (7 сентября 2009)
- Исправлена ошибка с некорректным выводом некоторых сообщений в локализованных версиях Visual Studio.
- Улучшена загрузка log-файла.
- Улучшена обработка критических ошибок - теперь о возможных проблемах с инструментов сообщить нам стало просто.
- Улучшена работа инсталлятора.
- Исправлена ошибка перебора файлов проекта.
PVS-Studio 3.10 (10 августа 2009)
- Добавлена поддержка инстанцирования шаблонов. Теперь поиск потенциальных ошибок выполняется не просто по телу шаблонов (как ранее), но и еще выполняется подстановка аргументов шаблона для более тщательной диагностики.
- Теперь анализатор кода может работать в режиме имитации Linux-окружения. Мы добавили поддержку различных моделей данных. Поэтому теперь на Windows-системе можно проверять кросс-платформенные программы также, как это делалось бы на Linux-системе.
- Исправлена ошибка, связанная с некорректной работой анализатора параллельных ошибок в 32-битном окружении.
- Существенно улучшена работа анализатора с шаблонами.
PVS-Studio 3.00 (27 июля 2009)
- Программные продукты Viva64 и VivaMP объединены в один программный комплекс PVS-Studio.
- Новая версия представляет собой существенно модернизированный программный продукт.
- Существенно повышена стабильность работы модуля интеграции в Visual Studio.
- Повышена скорость работы на многопроцессорных системах: анализ выполняется в несколько потоков. Причем количество рабочих потоков анализатора можно настраивать с помощью опции "Thread Count". По умолчанию количество потоков соответствует количеству ядер в процессоре, однако количество потоков можно уменьшить.
- Добавлена возможность работы анализатора из командной строки. В настройки программы добавлена новая опция "Remove Intermediate Files" ("Удалять промежуточные файлы"), которая позволяет не удалять командные файлы, создаваемые во время работы анализатора кода. Эти командные файлы можно запускать отдельно, без Visual Studio для выполнения анализа. Кроме того, создавая новые командные файлы по аналогии можно выполнять анализ всего проекта без использования Visual Studio.
- Управлять диагностикой отдельных ошибок стало проще, удобнее и быстрее. Теперь можно включать и выключать показ отдельных ошибок в результатах анализа. Самое главное, что изменение списка сообщений происходит автоматически, без необходимости перезапуска анализа. Выполнив анализ, вы можете просмотреть список ошибок и просто выключить показ тех из них, которые для вашего проекта не актуальны.
- Значительно улучшена работа с фильтрами ошибок. Фильтры для сокрытия отдельных сообщений теперь задаются просто как список строк. Причем применение фильтров также как и управление диагностикой отдельных ошибок не требует перезапуска анализа.
- Изменение лицензионной политики. Хотя PVS-Studio является единым продуктом, лицензирование возможно и для отдельных модулей анализа, таких как Viva64 и VivaMP, и для всех модулей сразу. Кроме того, появились лицензии для одного пользователя и для команды разработчиков. Все эти изменения нашли отражение в регистрационных ключах.
- Поддержка локализованных версий Visual Studio существенно улучшена.
- Интегрирующаяся в MSDN справочная система для новой версии PVS-Studio была значительно переработана и усовершенствована. Описание новых разделов позволяет лучше изучить работу с программным продуктом.
- Улучшено графическое оформление программного продукта. Новые иконки и графика в инсталляторе придали анализатору более красивый вид.
VivaMP 1.10 (20 апреля 2009)
- Улучшен анализ кода, содержащего вызовы статических функций класса.
- Реализованы новые диагностические правила для анализа ошибок связанных с исключениями: V1301, V1302, V1303.
- Исправлена ошибка с некорректным отображением индикатора прогресса анализа на компьютерах с нестандартным DPI.
- Реализованы некоторые другие усовершенствования.
VivaMP 1.00 (10 марта 2009)
- Выпущена финальная версия VivaMP.
VivaMP 1.00 beta (27 ноября 2008)
- Первая публичная бета-версия VivaMP выложена в Интернете.
Viva64 2.30 (20 апреля 2009)
- Реализовано новое диагностическое правило V401.
- Улучшена обработка констант, что в ряде случаев сокращает количество ложных диагностических предупреждений.
- Исправлена ошибка с некорректным отображением индикатора прогресса анализа на компьютерах с нестандартным DPI.
- Исправлен ряд недочетов.
Viva64 2.22 (10 марта 2009)
- Улучшена совместная работа Viva64 и VivaMP.
- Увеличена скорость работы анализатора кода на 10%.
Viva64 2.21 (27 ноября 2008)
- Добавлена поддержка совместной работы Viva64 и VivaMP.
Viva64 2.20 (15 октября 2008)
- Улучшена диагностика потенциально опасных конструкций. В результате примерно на 20% сократилось количество "ложных срабатываний" анализатора кода. Теперь разработчик потратит меньше времени на анализ кода, диагностируемого как потенциально опасный.
- Изменения в справочной системе. Справка было расширена и дополнена новыми примерами. Так как в данной версии улучшена диагностика потенциально опасных конструкций, то в справочную систему также были добавлены пояснения, касающиеся того, какие конструкция теперь не считаются опасными.
- Увеличена скорость анализа структуры проекта. Теперь же такая работа выполняется примерно в 10 раз быстрее. В конечном итоге это сокращает общее время анализа всего проекта.
- Улучшен анализ шаблонов в языке Си++. Не секрет, что далеко не все анализаторы кода полностью понимают шаблоны (template). Мы постоянно работаем над улучшением диагностики потенциально опасных конструкций в шаблонах. Очередное подобное улучшение сделано в этой версии.
- Изменен формат ряда сообщений анализатора кода для возможности осуществления более тонкой настройки фильтров. Так, например, теперь анализатор не просто сообщает о некорректном типе индекса при доступе к массиву, но при этом и указывает имя самого массива. Если разработчик уверен, что подобный массив никак не может быть источником проблем для 64-битного режима работы, то он может отфильтровать все сообщения, относящиеся к данному массиву по его имени.
Viva64 2.10 (05 сентября 2008)
- Добавлена поддержка Visual C++ 2008 Service Pack 1.
Viva64 2.0 (09 июля 2008)
- Добавлена поддержка Visual C++ 2008 Feature Pack (и TR1).
- Добавлен режим Pedantic, позволяющий в случае необходимости находить конструкции, представляющие потенциальную опасность, но редко приводящие к ошибкам.
- Улучшена диагностика шаблонных функций.
Viva64 1.80 (03 февраля 2008)
- Visual Studio 2008 полностью поддерживается.
- Увеличена скорость анализа кода.
- Улучшен установщик. Теперь возможно установить Viva64 без прав администратора.
Viva64 1.70 (20 декабря 2007)
- Добавлена поддержка нового диагностического сообщения (V117). Memsize type used in union.
- Исправлена серьезная проблема связанная с диагностикой нескольких ошибок в одной строке кода.
- Исправлена ошибка вычисления типов в сложных синтаксических конструкциях.
- Улучшен интерфейс пользователя. Индикатор прогресса отслеживает анализ всего решения (solution).
- Visual Studio 2008 частично поддерживается(BETA).
Viva64 1.60 (28 августа 2007)
- Добавлена поддержка нового диагностического сообщения (V112). Dangerous magic number used.
- Добавлена поддержка нового диагностического сообщения (V115). Memsize type used for throw.
- Добавлена поддержка нового диагностического сообщения (V116). Memsize type used for catch.
- Изменены ограничения ознакомительной версии. Для каждого анализируемого файла показываются только несколько диагностических сообщений.
Viva64 1.50 (15 мая 2007)
- Добавлена поддежка анализа кода на языке Си.
Viva64 (1.40 - 1 мая 2007)
- Добавлена возможность подавления некоторых сообщений. Вы можете задавать свои фильтры на странице настроек "Message Suppression". Например, вы можете захотеть пропускать сообщения с определенным кодом ошибки или сообщения, содержащие определенные имена функций. (См. Settings: Message Suppression).
- Появилась возможность сохранять/загружать результаты анализа..
- Улучшено представление результатов работы анализатора. Результаты теперь выдаются в стандартном окне Visual Studio под названием Error List, подобно сообщениям компилятора.
Viva64 1.30 (17 марта 2007)
- Улучшено представление процесса анализа кода. Убраны лишние переключения окон, создан общий индикатор прогресса.
- Добавлена панель инструментов Viva64.
- Пользователь может указать анализатору, что проверяемая программа может использовать более 2Гб оперативной памяти. Для программ, использующих меньше 2Гб памяти некоторые диагностические сообщения будут отключены.
- Добавлена поддержка нового диагностического сообщения (V113). Implicit type conversion from memsize to double type or vice versa.
- Добавлена поддержка нового диагностического сообщения (V114). Dangerous explicit type pointer conversion.
- Добавлена поддержка нового диагностического сообщения (V203). Explicit type conversion from memsize to double type or vice versa.
Viva64 1.20 (26 января 2007)
- Добавлена фильтрация повторяющихся сообщений. Речь идет об ошибках в h-файлах. Ранее если *.h файл с ошибкой включался в различные *.cpp файлы, то диагностические сообщения выдавались несколько раз. Теперь же будет только одно диагностическое сообщение.
- Теперь Viva64 сообщает о количестве ошибок, обнаруженных после анализа кода. Вы всегда можете определить:
- сколько кода осталось проверить; - как много ошибок уже исправлено; - какие модули содержать наибольшее количество ошибок.
- Добавлена поддержка горячих клавиш. Теперь можно прервать работу анализатора с помощью Ctrl+Break. А для проверки текущего файла достаточно нажать Ctrl+Shift+F7.
- Исправлены некоторые ошибки в работе анализатора.
Viva64 1.10 (16 января 2007)
- С помощью анализатора Viva64 мы подготовили 64-битную версию Viva64! Но пользователю не надо беспокоиться о выборе подходящей версии. Правильная версия выбирается автоматически во время установки.
- Добавлена поддержка нового диагностического сообщения (V111).
- Удалена ненужная диагностика на доступ к массивам с помощью enum-значений.
- Удалена ненужная диагностика ошибок на конструкции вида int a = sizeof(int).
- Улучшения справочной системы.
Viva64 1.00 (31 декабря 2006)
- Первая публичная версия Viva64 выложена в Интернете.
|