4

Click here to load reader

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

паттернами 64-битных ошибок

Данная статья содержит различные примеры 64-битных ошибок, собранные в демонстрационном

примере PortSample. Однако, начиная с версии PVS-Studio 3.63, вместо PortSample в дистрибутив

PVS-Studio включается более новая версия примеров, которая называется OmniSample. Поэтому

некоторые скриншоты в статье не соответствуют актуальному состоянию дел.

Знакомство с паттернами 64-битных ошибок закончено, и возможно у вас возникло желание на

практике поэкспериментировать с опасными конструкциями и попробовать PVS-Studio для их

обнаружения. Удовлетворить свой интерес вы можете, установив демонстрационный проект

PortSample, входящий в состав PVS-Studio (рисунок 1).

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

PortSample представляет собой обыкновенный проект на языке Си++, который можно открыть как

в Visual Studio 2005, так и в Visual Studio 2008 (рисунок 2).

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

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

В проекте PortSample собраны примеры для всех диагностических сообщений, которые выдает

статический анализатор Viva64, входящий в состав PVS-Studio, при проверке 64-битных проектов.

Количество предупреждений не велико (на момент написания данного текста их количество

составляет 25 штук), но каждое диагностическое сообщение способно выявить большой спектр

ошибочных конструкций. Это позволяет сгруппировать 64-битные ошибки в общие группы, к

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

повторений описания одной и той же разновидности ошибок, закодированной в разных

вариантах. В результате документацию к PVS-Studio можно не только пролистать, но и

действительно прочитать, чтобы познакомиться со всеми тонкостями кодирования для 64-битных

систем.

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

online-режиме на русском языке: справочная система по PVS-Studio.

Программа PortSample имеет интерфейс, показанный на рисунке 3, который позволяет удобно

запускать интересующие вас участки кода. Подробно о содержимом проекта рассказывать не

имеет смысла. Вы сможете самостоятельно изучать интересующий вас код. Также вы можете

обратиться к статье "Проблемы 64-битного кода на примерах", в которой подробно

рассматриваются 64-битные ошибки на примере кода из проекта PortSample.

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

Обратим внимание на один важный момент, связанный с использованием демонстрационной

версии PVS-Studio. Когда демонстрационная версия используется для проверки кода, то хотя и

обнаруживаются все потенциальные ошибки, информация о том, где они расположены в тексте

программы, показывается не во всех диагностических сообщениях. Вместо номера строки

выводится текст "TRIAL RESTRICTION", как показано на рисунке 4.

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

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

проекта не позволяет просмотреть расположение в коде всех ошибок

Когда демонстрационная версия PVS-Studio работает с проектом PortSample, то показывается

расположение всех ошибок. То есть PVS-Studio не имеет никаких ограничений при работе с

примерами (смотри рисунок 5). Вы можете свободно модифицировать файлы PortSample

содержащие ошибки и полноценно изучать поведение PVS-Studio на написанном вами коде.

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

проекте PortSample

Возникшие вопросы по использованию PVS-Studio и проекту PortSample вы можете обсудить с

разработчиками анализатора. Мы будем рады комментариям, замечаниям и рекомендациям по

улучшению анализатора PVS-Studio. Пишите нам по адресу [email protected].

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

Авторы курса: Андрей Карпов ([email protected]), Евгений Рыжков ([email protected]).

Правообладателем курса "Уроки разработки 64-битных приложений на языке Си/Си++"

является ООО "Системы программной верификации". Компания занимается разработкой

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

http://www.viva64.com.

Контактная информация: e-mail: [email protected], 300027, г. Тула, а/я 1800.