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


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

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

![25_Working_with_patterns_ru/image1.png](https://import.viva64.com/docx/blog/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](https://import.viva64.com/docx/blog/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](https://pvs-studio.ru/ru/docs/)\.

Программа PortSample имеет интерфейс, показанный на рисунке 3, который позволяет удобно запускать интересующие вас участки кода\. Подробно о содержимом проекта рассказывать не имеет смысла\. Вы сможете самостоятельно изучать интересующий вас код\. Также вы можете обратиться к статье "[Проблемы 64\-битного кода на примерах](https://pvs-studio.ru/ru/blog/posts/cpp/a0008/)", в которой подробно рассматриваются 64\-битные ошибки на примере кода из проекта PortSample\.

![25_Working_with_patterns_ru/image4.png](https://import.viva64.com/docx/blog/25_Working_with_patterns_ru/image4.png)

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

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

![25_Working_with_patterns_ru/image6.png](https://import.viva64.com/docx/blog/25_Working_with_patterns_ru/image6.png)

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

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

![25_Working_with_patterns_ru/image8.png](https://import.viva64.com/docx/blog/25_Working_with_patterns_ru/image8.png)

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

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

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

_Правообладателем курса "Уроки разработки 64\-битных приложений на языке Си/Си\+\+" является ООО "Системы программной верификации"\. Компания занимается разработкой программного обеспечения в области анализа исходного кода программ\. [Сайт компании](https://pvs-studio.ru/ru/pvs-studio/)\._