Поделиться через


Анализ качества приложений с помощью средств анализа кода

Окно анализа кода доступно во всех выпусках Visual Studio 2013.

Функции анализа кода

Окно анализа кода

Теперь предупреждения средства анализа кода отображаются в окне средства анализа кода.Это окно позволяет устранять предупреждения средства анализа кода и управлять ими.

Фильтрация предупреждающих сообщений

В этом окне вы можете отфильтровать сообщения из окна анализа кода по ключевому слову, проекту и серьезности.

Выделение в редакторе кода

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

Подавление сообщения C++

В окне анализа кода вы можете вставить директиву pragma в исходный код, которая подавляет выбранное предупреждение.

Наборы правил C++

Как и в управляемом коде, вы теперь можете указать правила анализа, которые хотите применить к запускам анализа кода, путем создания или использования наборов правил.

Поддержка приложений для Магазина Windows

Анализ кода можно выполнить в коде Visual Basic, C# и C/++ в приложениях для Магазина Windows.Дополнительную информацию см. в разделе Анализ качества кода приложений для Магазина Windows с помощью средства анализа кода Visual Studio в Центре разработки для Windows.

Новые предупреждения параллелизма C++

Новые предупреждения параллелизма позволяют гарантировать дисциплины блокировки в многопоточных программах C/C++.Анализатор определяет количество ошибок параллелизма, включая потенциальные состояния гонки, инверсии порядка блокировки, нарушения контракта блокировки "вызывающий/вызываемый" и несоответствие операций синхронизации.

C26100

Состояние гонки.Переменная <var> должна быть защищена блокировкой <lock>.

C26101

Неправильное использование операции блокировки для переменной <var>.

C26105

Нарушение порядка блокировки.Приобретение блокировки <lock> уровня <level> вызывает инверсию порядка.

C26110

Вызывающая сторона не может удержать блокировку <lock> до вызова функции <func>.

C26111

Вызывающая сторона не может освободить блокировку <lock> до вызова функции <func>.

C26112

Вызывающая сторона не может содержать любые блокировки до вызова <func>.

C26115

Сбой при освобождении блокировки <lock> в функции <func>.

C26116

Сбой при получении или удержании блокировки <lock> в <func>.

C26117

Освобождение неудерживаемой блокировки <lock> в функции <func>.

C26130

Отсутствует аннотация _Requires_lock_held_(<lock>) или _No_competing_thread_ в функции <func>.В противном случае это может вызвать условие гонки.Переменная <var> должна быть защищена блокировкой <lock>.

C26135

Отсутствует аннотация <annotation> в функции <func>.

C26140

Ошибка аннотации SAL параллелизма

C26160

Вызывающая сторона не смогла удержать блокировку <lock> до вызова функции <func>.

C26165

Возможно, не удалось снять блокировку

C26166

Возможно, не удается получить или удержать блокировку <lock> в функции <func>.

C26167

Возможно, освобождается неудерживаемая блокировка <lock> в функции <func>.

C28101

Модуль драйверов определил, что текущая функция не имеет правильного типа функции

C28182

Разыменование указателя NULL

Содержание раздела

Анализ управляемого кода

Анализ управляемого кода позволяет получить такие сведения о сборках управляемого кода, как нарушение правил программирования и разработки, изложенных в руководствах по разработке для Microsoft .NET Framework.В предупреждающих сообщениях указываются все проблемы, связанные с программированием и разработкой, и, по возможности, сведения о методах их устранения.

Средства анализа кода C++

Средство анализа кода C/C++ предоставляет сведения о возможных дефектах в исходном коде C/C++.Наиболее распространенные ошибки, обнаруживаемые этим средством: переполнение буфера, неинициализированная память, разыменование пустых указателей, а также утечка памяти и ресурсов.

Анализ кода для драйверов

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

  • Analyzing Driver Quality by Using Code Analysis Tools
    Анализ кода для драйверов — это средство статической проверки во время компиляции, которое обнаруживает основные ошибки кода в программах на языках C и C++ и включает специальный модуль, предназначенный для выявления ошибок (в основном) в коде драйвера, работающего в режиме ядра.Средство статической проверки (SDV) — это средство статической проверки, которое систематически анализирует исходный код в работающих в режиме ядра драйверах Windows.SDV определяет, правильно ли драйвер взаимодействует с ядром операционной системы Windows.

  • Code Analysis for Drivers Warnings
    Описание предупреждений, передаваемых функцией анализа кода для драйверов при обнаружении возможной ошибки в коде драйвера.

Дополнительные разделы в этом разделе

  1. Viewing Code Analysis Messages

  2. Улучшение качества кода с помощью политик возврата командного проекта

Дополнительные сведения о средстве анализа кода

Улучшение качества кода с помощью политик возврата командного проекта

Связанные задачи

  1. Оценка сложности и удобства сопровождения управляемого кода

  2. Проверка кода при помощи модульных тестов