metrica
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

Вебинар: Трудности при интеграции SAST, как с ними справляться - 04.04

>
>
>
Урок 25. Практическое знакомство с патт…

Урок 25. Практическое знакомство с паттернами 64-битных ошибок

24 Янв 2012

Данная статья содержит различные примеры 64-битных ошибок, собранные в демонстрационном примере PortSample. Однако, начиная с версии PVS-Studio 3.63, вместо PortSample в дистрибутив PVS-Studio включается более новая версия примеров, которая называется OmniSample. Поэтому некоторые скриншоты в статье не соответствуют актуальному состоянию дел.

Знакомство с паттернами 64-битных ошибок закончено, и возможно у вас возникло желание на практике поэкспериментировать с опасными конструкциями и попробовать PVS-Studio для их обнаружения. Удовлетворить свой интерес вы можете, установив демонстрационный проект PortSample, входящий в состав PVS-Studio (рисунок 1).

25_Working_with_patterns_ru/image1.png

Рисунок 1 - Установка проекта PortSample, входящего в состав PVS-Studio

PortSample представляет собой обыкновенный проект на языке Си++, который можно открыть как в Visual Studio 2005, так и в Visual Studio 2008 (рисунок 2).

25_Working_with_patterns_ru/image2.png

Рисунок 2 - Для изучения PortSample можно использовать Visual Studio 2005 и Visual Studio 2008

В проекте PortSample собраны примеры для всех диагностических сообщений, которые выдает статический анализатор Viva64, входящий в состав PVS-Studio, при проверке 64-битных проектов. Количество предупреждений не велико (на момент написания данного текста их количество составляет 25 штук), но каждое диагностическое сообщение способно выявить большой спектр ошибочных конструкций. Это позволяет сгруппировать 64-битные ошибки в общие группы, к которым можно дать общее описание. Это позволяет обойтись в документации без бесконечных повторений описания одной и той же разновидности ошибок, закодированной в разных вариантах. В результате документацию к PVS-Studio можно не только пролистать, но и действительно прочитать, чтобы познакомиться со всеми тонкостями кодирования для 64-битных систем.

Русскоязычным читателям будет интересен тот факт, что документация по PVS-Studio доступна в online-режиме на русском языке: справочная система по PVS-Studio.

Программа PortSample имеет интерфейс, показанный на рисунке 3, который позволяет удобно запускать интересующие вас участки кода. Подробно о содержимом проекта рассказывать не имеет смысла. Вы сможете самостоятельно изучать интересующий вас код. Также вы можете обратиться к статье "Проблемы 64-битного кода на примерах", в которой подробно рассматриваются 64-битные ошибки на примере кода из проекта PortSample.

25_Working_with_patterns_ru/image3.png

Рисунок 3 - Интерфейс программы

Обратим внимание на один важный момент, связанный с использованием демонстрационной версии PVS-Studio. Когда демонстрационная версия используется для проверки кода, то хотя и обнаруживаются все потенциальные ошибки, информация о том, где они расположены в тексте программы, показывается не во всех диагностических сообщениях. Вместо номера строки выводится текст "TRIAL RESTRICTION", как показано на рисунке 4.

25_Working_with_patterns_ru/image5.png

Рисунок 4 - Использование демонстрационной версии PVS-Studio при проверке 64-битного проекта не позволяет просмотреть расположение в коде всех ошибок

Когда демонстрационная версия PVS-Studio работает с проектом PortSample, то показывается расположение всех ошибок. То есть PVS-Studio не имеет никаких ограничений при работе с примерами (смотри рисунок 5). Вы можете свободно модифицировать файлы PortSample содержащие ошибки и полноценно изучать поведение PVS-Studio на написанном вами коде.

25_Working_with_patterns_ru/image7.png

Рисунок 5 - Демонстрационная версия PVS-Studio выводит номера всех строк с ошибками в проекте PortSample

Возникшие вопросы по использованию PVS-Studio и проекту PortSample вы можете обсудить с разработчиками анализатора. Мы будем рады комментариям, замечаниям и рекомендациям по улучшению анализатора PVS-Studio. Пишите нам по адресу support@viva64.com.

Авторы курса: Андрей Карпов (karpov@viva64.com), Евгений Рыжков (evg@viva64.com).

Правообладателем курса "Уроки разработки 64-битных приложений на языке Си/Си++" является ООО "Системы программной верификации". Компания занимается разработкой программного обеспечения в области анализа исходного кода программ. Сайт компании: http://www.viva64.com.