Click here to load reader
Upload
tatyanazaxarova
View
204
Download
4
Embed Size (px)
DESCRIPTION
Данная статья содержит различные примеры 64-битных ошибок, собранные в демонстрационном примере PortSample. Однако, начиная с версии PVS-Studio 3.63, вместо PortSample в дистрибутив PVS-Studio включается более новая версия примеров, которая называется OmniSample. Поэтому некоторые скриншоты в статье не соответствуют актуальному состоянию дел.
Citation preview
Урок 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
В проекте 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.
Рисунок 4 - Использование демонстрационной версии PVS-Studio при проверке 64-битного
проекта не позволяет просмотреть расположение в коде всех ошибок
Когда демонстрационная версия PVS-Studio работает с проектом PortSample, то показывается
расположение всех ошибок. То есть PVS-Studio не имеет никаких ограничений при работе с
примерами (смотри рисунок 5). Вы можете свободно модифицировать файлы PortSample
содержащие ошибки и полноценно изучать поведение PVS-Studio на написанном вами коде.
Рисунок 5 - Демонстрационная версия PVS-Studio выводит номера всех строк с ошибками в
проекте PortSample
Возникшие вопросы по использованию PVS-Studio и проекту PortSample вы можете обсудить с
разработчиками анализатора. Мы будем рады комментариям, замечаниям и рекомендациям по
улучшению анализатора PVS-Studio. Пишите нам по адресу [email protected].
Авторы курса: Андрей Карпов ([email protected]), Евгений Рыжков ([email protected]).
Правообладателем курса "Уроки разработки 64-битных приложений на языке Си/Си++"
является ООО "Системы программной верификации". Компания занимается разработкой
программного обеспечения в области анализа исходного кода программ. Сайт компании:
http://www.viva64.com.
Контактная информация: e-mail: [email protected], 300027, г. Тула, а/я 1800.