Все
-
Сравнение Cppcheck и PVS-Studio
-
Коллекция интересных ресурсов по тематике программирования на языке Си/Си++
-
Всё о PVS-Studio
-
Прощай #define private public
-
Проверка проекта Blender с помощью PVS-Studio
-
Я хочу продать в компанию Intel лицензию на PVS-Studio
-
Что общего у статического анализа и поисковиков? Хороший "top"!
-
Не зная брода, не лезь в воду. Часть третья
-
Советы по command line версии PVS-Studio
-
Изучение способов привлечения на сайт программного продукта
-
Вторая проверка WinMerge с помощью PVS-Studio
-
Тайное о PVS-Studio
-
Использование PVS-Studio для проверки проектов, использующих Marmalade SDK
-
Что такое идеальный статический анализатор, или почему идеал не достижим
-
Лицензирование PVS-Studio: почему у нас нет Single User License?
-
Анализ проекта TrinityCore с помощью PVS-Studio
-
Проверка проекта Dolphin-emu
-
Ответы на вопросы, которые часто задают после прочтения наших статей
-
Повторная проверка проекта Notepad++
-
Проверка проекта Quake III Arena GPL
-
Не зная брода, не лезь в воду. Часть вторая
-
Как мы решали задачу реализации trial-режима в анализаторе кода PVS-Studio
-
Не зная брода, не лезь в воду. Часть первая
-
Советы по повышению скорости работы PVS-Studio
-
О пользе автоматической фильтрации одинаковых сообщений
-
"Проверьте еще вот этот проект..."
-
Диалог Windows Error Reporting
-
О нашей библиотеке VivaCore
-
Что поражает меня при разработке статического анализатора кода
-
PVS-Studio: анализируем код Doom 3
-
Мифы о статическом анализе. Миф пятый – можно составить маленькую программу, чтобы оценить инструмент
-
Мифы о статическом анализе. Миф четвёртый – программисты хотят добавлять свои правила в статический анализатор
-
Мифы о статическом анализе. Миф третий – динамический анализ лучше чем статический
-
Мифы о статическом анализе. Миф второй – профессиональные разработчики не допускают глупых ошибок
-
Мифы о статическом анализе. Миф первый – статический анализатор это продукт разового применения
-
Самая большая и интересная рекламная статья (70 листов) про статический анализ кода
-
PVS-Studio vs Chromium - продолжение
-
Проверка Intel IPP Samples for Windows - продолжение
-
PVS-Studio Output Window vs plain text stdout
-
Как добавить новое диагностическое правило в PVS-Studio? Будни разработчиков
-
Ctrl+S и Visual Studio Output Window
-
PVS-Studio vs Clang
-
Как в PVS-Studio мы решали одну инженерную задачу в течение нескольких лет
-
Проверка проекта Intel Energy Checker SDK (IEC SDK) с помощью PVS-Studio
-
Лев Толстой и статический анализ кода
-
Изменение лицензионной политики PVS-Studio
-
Пояснения к статье про Copy-Paste
-
PVS-Studio научился следить за тем, как вы программируете
-
Использование анализатора PVS-Studio в процессе инкрементальной сборки в Microsoft Visual Studio 2010
-
Статический анализ и ROI
-
О внедрении PVS-Studio у наших клиентов
-
Почему статический анализ кода необходимо проводить регулярно, а не время от времени (к примеру "каждый релиз")
-
Вечный вопрос измерения времени
-
Сделать правильно – трудно (об одной непростой ошибке)
-
Чему равно выражение sizeof(&X), если X объявлен как "char *X[n];" ?
-
По колено в Си++ г... коде
-
Есть ли практический смысл использовать для итераторов префиксный оператор инкремента ++it, вместо постфиксного it++
-
Бесплатная лицензия на статический анализатор PVS-Studio для разработчиков, блоггеров и авторов статей в тематических IT изданиях
-
Ситуации, когда может пригодиться статический анализатор кода
-
Проверка проекта Ultimate Toolbox
-
Почему PVS-Studio 4.00 будет платным решением :-(
-
Статический анализ и регулярные выражения
-
Работа с PVS-Studio в Visual Studio 2010 из-под нескольких учётных записей Windows
-
Проблема с символами '(' и ')' в системной переменной PATH при использовании PVS-Studio из Visual Studio 2008
-
Трепещи, мир! Мы выпустили PVS-Studio 4.00 с анализатором общего назначения
-
Статический анализ: ошибки в медиаплеере и безглючная аська
-
Разница в подходах анализа кода компилятором и выделенным инструментом
-
Статический анализ исходного кода на примере WinMerge
-
О сложностях программирования, или C# нас не спасет?
-
Поиск явного приведения указателя к 32-битному типу
-
Проблемы 64-битного кода в реальных программах: а что же Linux?
-
Intel VTune Amplifier XE 2011 beta под строгим взглядом программиста
-
Щупаем новый Intel Parallel Studio XE 2011 beta
-
Д'Артаньян и интернет, или работа над проблемой битых ссылок
-
Пять дней на исправление ошибки в два символа, или миф о всемогущих технологиях при разработке программ
-
64-битные программы и вычисления с плавающей точкой
-
Большой брат помогает тебе
-
Почему в PVS-Studio в окне Error List иногда не показывается номер строки, в которой обнаружена проблема?
-
Новые диагностические возможности, реализованные в PVS-Studio 3.60
-
Причины, по которым 64-битные программы требуют больше стековой памяти
-
Общение разработчиков с пользователями программ
-
Привлечение внимания потенциальных клиентов с помощью статей
-
Получение отклика от потенциальных пользователей
-
"Что это такое?" – новая возможность анализатора кода PVS-Studio
-
Разработка инструментов тестирования и верификации кода
-
Как отключить IntelliSence в Visual Studio 2010?
-
Параллельные заметки N5 — продолжаем знакомиться с конструкциями OpenMP
-
Параллельные заметки N4 - продолжаем знакомиться с конструкциями OpenMP
-
Параллельные заметки №3 - базовые конструкции OpenMP
-
Как стандарт C++0x поможет в борьбе с 64-битными ошибками
-
Платформа автоматизации сборок CruiseControl.NET
-
Параллельные заметки №2 – инструментарий для OpenMP
-
Суперкомпьютерные технологии в науке, образовании и промышленности
-
Описание ошибки интеграции Intel Parallel Studio Service Pack 1 в Visual Studio 2005/2008
-
"Improve your... Google?"
-
Ключ /Wp64 и ошибка с обработкой шаблонов
-
Параллельные заметки №1 – технология OpenMP
-
64-битные технологии - еще одно направление в современном программном обеспечении
-
Visual Studio Team System, /analyze и D9040
-
Знакомство с уровнями распараллеливания
-
Верификация и валидация
-
Тонкость с виртуальными функциями
-
Поиск 64-битных ошибок в реализации массивов
-
Оптимизация в мире 64-битных ошибок
-
Проблемы 64-битного кода в реальных программах: qsort
-
Значение "Чисел Фибоначчи" в истории параллельного программирования
-
Embarcadero C++Builder и проверка 64-битного кода
-
Много ядер хорошо, а быстрый жесткий диск тоже хорошо
-
Один из ответов на вопрос "Кому вообще нужна вся эта параллельность?"
-
Программные ошибки, которых не бывает
-
Почему A + B != A - (-B)
-
Зависит ли результат статического анализа кода от используемого компилятора?
-
Проблемы в реальных программах - каких только ошибок не бывает на свете
-
Холодный Tachyon
-
Tachyon и Parallel Lint
-
Проблемы 64-битного кода в реальных программах: изменение типа указателя
-
Красивая 64-битная ошибка на языке Си
-
Будьте аккуратны с директивой atomic
-
PVS-Studio выдает ошибку "Some diagnostic messages may contain incorrect line number for file ..." (продолжение)
-
А существуют ли в реальности 64-битные ошибки?
-
Представление информации на сайте
-
64-битный мир становится ближе
-
Проблемы 64-битного кода в реальных программах: виртуальные функции
-
Возможные проблемы с stdafx.h при использовании PVS-Studio
-
Cannot process the whole file "foo.cpp"
-
Магические константы и функция malloc()
-
Обработка исключений внутри параллельных секций
-
PVS-Studio выдает ошибку "Some diagnostic messages may contain incorrect line number for file ..."
-
Проблемы 64-битного кода в реальных программах: магические константы
-
PVS-Studio и проверка Loki
-
Атавизмы в больших системах
-
Проверка Linux-приложений с помощью PVS-Studio на Windows
-
Функция распечатки типа выражения
-
OpenMP 3.0 и итераторы
-
Курс по статическому анализу
-
Планы ООО "СиПроВер" по развитию собственных программных продуктов
-
Первые наши практические исследования в области расчета метрик
-
Использование rand() в параллельных секциях OpenMP
-
VivaCore, вопросы по документации
-
Первое впечатление от использования Intel Parallel Inspector
-
Изменения выравнивания типов и последствия
-
OpenMP и исключения (exceptions)
-
Поиск ошибок явного приведения типа в 64-битных программах
-
Online диагностика ошибок связанных с использованием технологии OpenMP и архитектуры x64
-
Мирное сосуществование PC-Lint и VivaMP
-
Viva64 для оптимизации структур данных
-
Неэффективность last() в реальном мире
-
Проблемы 64-битного кода в реальных программах: FreeBSD
-
Запуск блога ООО "СиПроВер"
-
Можно ли использовать более 2 гигабайт памяти в 32-битной программе, запущенной в 64-битной Windows?
-
Какими преимуществами обладают 64-разрядные процессоры по сравнению с 32-разрядными?
-
Почему 64-битные приложения работают быстрее 32-битных?
-
Возможен ли запуск 64-битных приложений в 32-битной операционной системе?
-
Как корректно привести указатель к int в 64-битной программе?
-
Где 64-битный компилятор в Visual Studio?
-
Стоит ли исправлять все ошибки, найденные статическим анализатором кода?
-
Предупреждения компилятора C4311 и C4312, выдаваемые при использовании ключа /Wp64
-
Как скомпилировать 64-битное приложение, используя Visual C++ Express 2005/2008/2010?
-
Visual Studio Team System, /analyze и D9040
-
Распространенная ошибка при компиляции 64-битного приложения: error C2440, OnTimer
-
Непонятные ошибки при компиляции 64-битной версии, error C2664
-
Распространенная ошибка при компиляции 64-битного приложения: error C4235, Assembler
-
Как используя ifdef узнать, что объявлен тип DWORD_PTR?
-
Почему Visual С++ больше не поддерживает встроенный ассемблер для Intel 64 и IA-64?
-
Как 32-битной программе узнать, что она запущена в 64-битной Windows?
-
Устаревшее описание функций в MSDN, не учитывающее 64-битность
-
Функции класса ntohl/htonl и работа с 64-битными значениями
-
Отличие %p от %x
-
Почему происходит замещение значения переменной среды ProgramFiles на ProgramFiles(x86) ?
-
Можно заставить тип size_t быть 32-битным в 64-битной программе?
-
Является ли size_t стандартным типом в языке Си++? В языке Си?
-
Работа с типом size_t в функциях prinft, scanf и аналогичных им
-
Эквивалентны ли типы size_t и uintptr_t
-
Существует ли 64-битная версия Visual Studio?
-
Как скомпилировать C++ программу в Visual Studio 2010, чтобы она работала в Windows 2000?
-
Warning C4267 в выражении unsigned n = str.find(substr)
-
Почему Windows помещает 64-битные модули в System32?
-
WOW6432Node и API-функции RegOpenKeyEx / RegEnumKeyEx
-
Почему WoW64 использует перенаправление реестра и файловой системы?
-
Путаница с WPARAM и UINT, а также LPARAM с LONG
-
Как с помощью #ifdef узнать, что собирается 64-битный проект в Visual Studio
-
Можно ли в 64-битной программе использовать 32-битные указатели?
-
Как узнать в 32-битной программе, какие 64-битные процессы запущены?
-
Что можно использовать вместо инструкции "int 3" в 64-битной программе?
-
Сколько памяти будет доступно приложению в Win32 и в Win64
-
Что использовать вместо rundll32.exe для запуска 64-битных DLL
-
Почему создание 64-битной версии программы может быть не простым делом?
-
Как в Win64 узнать, сколько процессорных ядер в системе?
-
Использование макросов _WIN64/WIN64
-
Перезаписывать память - зачем?
-
100 багов в Open Source проектах на языке Си/Си++
-
Как уменьшить вероятность ошибки на этапе написания кода. Заметка N4
-
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
-
PVS-Studio: анализируем код операционной системы ReactOS
-
Как уменьшить вероятность ошибки на этапе написания кода. Заметка N3
-
Как мы тестируем анализатор кода
-
PVS-Studio vs Chromium
-
Сравнение статического анализа общего назначения из Visual Studio 2010 и PVS-Studio на примере обнаруженных ошибок в пяти открытых проектах
-
Трудности сравнения анализаторов кода или не забывайте об удобстве использования
-
Как уменьшить вероятность ошибки на этапе написания кода. Заметка N2
-
Как уменьшить вероятность ошибки на этапе написания кода. Заметка N1
-
Intel IPP Samples for Windows - работа над ошибками
-
Последствия использования технологии Copy-Paste при программировании на Си++ и как с этим быть
-
Регулярное использование статического анализа кода в командной разработке
-
Сравнение возможностей PVS-Studio и Visual Studio 2010 по выявлению дефектов в 64-битных программах
-
Коллекция примеров 64-битных ошибок в реальных программах
-
Интервью с Issam Lahlali, одним из создателей инструмента CppDepend
-
64 бита
-
Изменения в инфраструктуре инструментов для программистов
-
Статический анализ Си++ кода и новый стандарт языка C++0x
-
Вопросы и ответы по библиотеке VivaCore (VivaCore FAQ)
-
32 подводных камня OpenMP при программировании на Си++
-
OpenMP и статический анализ кода
-
Отладка и оптимизация многопоточных OpenMP-программ
-
Технология OpenMP
-
VivaMP - инструмент для OpenMP
-
VivaMP, система выявления ошибок в коде параллельных программ на языке С++, использующих OpenMP
-
Интервью с Анатолием Кузнецовым, автором библиотеки BitMagic C++ Library
-
Сравнение PVS-Studio с другими анализаторами кода
-
Неудачная попытка сравнить PVS-Studio (VivaMP) и Intel C/C++ ("Parallel Lint")
-
64-битная версия Loki
-
Что такое size_t и ptrdiff_t
-
Как оценить процесс 64-битной миграции Си/Си++ приложений?
-
Безопасность 64-битного кода
-
Метрики кода программного обеспечения
-
Что такое "Parallel Lint"?
-
64-битный конь, который умеет считать
-
7 шагов по переносу программы на 64-битную систему
-
Интервью с Дмитрием Вьюковым – автором верификатора Relacy Race Detector (RRD)
-
Разработка статического анализатора кода для обнаружения ошибок переноса программ на 64-битные системы
-
Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами
-
Правила статического анализа кода для диагностики потенциально опасных конструкций с точки зрения 64-битных программ
-
Многопроцессорным компьютерам - параллельные программы!
-
Введение в 64 бита для начинающих, или где же 64-битный мир?
-
Изучение проблемы: перенос Си++ библиотек для работы с облаками точек итриангулированными сетками на 64-битную платформу
-
Константин Книжник: статический анализ, взгляд со стороны
-
Установка PC-Lint и его использование в Visual Studio 2005
-
Параллельные алгоритмы обработки данных
-
Тестирование параллельных программ
-
Оптимизация 64-битных программ
-
Архитектура AMD64 (EM64T)
-
Как появилась библиотека VivaCore
-
Поиск уязвимостей в программах с помощью анализаторов кода
-
Это сложно
-
Описание VivaVisualCode
-
Сравнение диагностических возможностей анализаторов при проверке 64-битного кода
-
Построение систем автоматического протоколирования Си/Си++ кода
-
VivaCore - быстрый старт
-
64 бита, /Wp64, Visual Studio 2008, Viva64 и все, все, все
-
Преимущества использования Viva64
-
Применение технологии статического анализа кода при разработке параллельных программ
-
Разработка ресурсоемких приложений в среде Visual C++
-
Применение статического анализа при разработке программ
-
Введение в проблематику разработки параллельных программ
-
Краткое описание библиотеки анализа кода VivaCore
-
Использование библиотеки анализа кода OpenC++: модификация, улучшение, исправление ошибок
-
Сущность библиотеки анализа кода VivaCore
-
Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Windows
-
Перенос приложений на 64-битные платформы, или: "Не говори гоп, пока не перепрыгнешь... ."
-
Забытые проблемы разработки 64-битных программ
-
Viva64: что это и для кого?
-
Проблемы 64-битного кода на примерах
-
Статический анализ кода для верификации 64-битных приложений
-
Проблемы тестирования 64-битных приложений
-
Разработка драйверов для 64-битных версий Windows
-
20 ловушек переноса Си++ - кода на 64-битную платформу
-
64 бита для Си++ программистов: от /Wp64 к Viva64
-
Viva64: разработка 64-битных приложений
-
Особенности разработки 64-битных приложений
-
Документация по анализатору кода PVS-Studio компании ООО "СиПроВер" (www.viva64.com)
-
Документация по анализатору кода PVS-Studio (одним файлом)
-
Проверка кода с помощью PVS-Studio из командной строки (если есть solution-файл Visual Studio)
-
Информация о правах и торговых марках
-
Ограничения анализатора кода
-
Коллекция примеров 64-битных и параллельных ошибок OmniSample
-
PVS-Studio в двух словах
-
Использование PVS-Studio вместе с системами continuous integration
-
Использование PVS-Studio из командной строки (без solution-файла Visual Studio). Интеграция в системы автоматизации сборки
-
Вопросы и ответы по PVS-Studio (PVS-Studio FAQ)
-
Знакомство с анализатором кода PVS-Studio
-
Принцип постоянного использования PVS-Studio в процессе разработки программного проекта
-
Общие сведения о принципах работы с анализатором PVS-Studio
-
Ознакомительный режим PVS-Studio
-
История версий PVS-Studio
-
Settings: General
-
Settings: Common Analyzer Settings
-
Settings: Detectable Errors
-
Settings: Don't Check Files
-
Settings: Message Suppression
-
Settings: Registration
-
Settings: Viva64
-
Подавление ложных предупреждений
-
Системные требования анализатора PVS-Studio
-
V001. A code fragment from 'file' cannot be analyzed
-
V002. Some diagnostic messages may contain incorrect line number
-
V003. Unrecognized error found
-
V1000. Did you forget to enable the /openmp compiler option?
-
V1001. Missing 'parallel' keyword
-
V1002. Missing 'omp' keyword
-
V1003. Missing 'for' keyword. Each thread will execute the entire loop
-
V1004. Nested parallelization of a 'for' loop
-
V1005. The 'ordered' directive is not present in an ordered loop
-
V1006. Missing omp.h header file. Use '#include <omp.h>'
-
V101. Implicit assignment type conversion to memsize type
-
V102. Usage of non memsize type for pointer arithmetic
-
V103. Implicit type conversion from memsize type to 32-bit type
-
V104. Implicit type conversion to memsize type in an arithmetic expression
-
V105. N operand of '?:' operation: implicit type conversion to memsize type
-
V106. Implicit type conversion N argument of function 'foo' to memsize type
-
V107. Implicit type conversion N argument of function 'foo' to 32-bit type
-
V108. Incorrect index type: 'foo[not a memsize-type]'. Use memsize type instead
-
V109. Implicit type conversion of return value to memsize type
-
V110. Implicit type conversion of return value from memsize type to 32-bit type
-
V1101. Redefining number of threads in a parallel code
-
V1102. Non-symmetrical use of set/unset functions for the following lock variable(s): foo
-
V1103. Threads number dependent code. The 'omp_get_num_threads' function is used in an arithmetic expression
-
V1104. Redefining nested parallelism in a parallel code
-
V111. Call of function 'foo' with variable number of arguments. N argument has memsize type
-
V112. Dangerous magic number N used
-
V113. Implicit type conversion from memsize to double type or vice versa
-
V114. Dangerous explicit type pointer conversion
-
V115. Memsize type is used for throw
-
V116. Memsize type is used for catch
-
V117. Memsize type is used in the union
-
V118. malloc() function accepts a dangerous expression in the capacity of an argument
-
V119. More than one sizeof() operator is used in one expression
-
V120. Member operator[] of object 'foo' declared with 32-bit type argument, but called with memsize type argument
-
V1201. Concurrent usage of a shared resource via an unprotected call of the 'foo' function
-
V1202. The 'flush' directive should not be used for the 'foo' variable, because the variable has pointer type
-
V1203. Using the 'threadprivate' directive is dangerous, because it affects the entire file. Use local variables or specify access type for each parallel block explicitly instead
-
V1204. Data race risk. Unprotected static variable declaration in a parallel code
-
V1205. Data race risk. Unprotected concurrent operation with the 'foo' variable
-
V1206. Data race risk. The value of the 'foo' variable can be changed concurrently via the 'bar' function
-
V1207. Data race risk. The 'foo' object can be changed concurrently by a non-const function
-
V1208. The 'foo' variable of reference type cannot be private
-
V1209. Warning: The 'foo' variable of pointer type should not be private
-
V121. Implicit conversion of the type of 'new' operator's argument to size_t type
-
V1210. The 'foo' variable is marked as lastprivate but is not changed in the last section
-
V1211. The use of 'flush' directive has no sense for private 'foo' variable, and can reduce performance
-
V1212. Data race risk. When accessing the array 'foo' in a parallel loop, different indexes are used for writing and reading
-
V122. Memsize type is used in the struct/class
-
V123. Allocation of memory by the pattern "(X*)malloc(sizeof(Y))" where the sizes of X and Y types are not equal
-
V1301. The 'throw' keyword cannot be used outside of a try..catch block in a parallel section
-
V1302. The 'new' operator cannot be used outside of a try..catch block in a parallel section
-
V1303. The 'foo' function which throws an exception cannot be used in a parallel section outside of a try..catch block
-
V2001. Consider using the extended version of the FOO function here
-
V2002. Consider using the 'Ptr' version of the FOO function here
-
V201. Explicit conversion from 32-bit integer type to memsize type
-
V202. Explicit conversion from memsize type to 32-bit integer type
-
V203. Explicit type conversion from memsize to double type or vice versa
-
V301. Unexpected function overloading behavior. See N argument of function 'foo' in derived class 'derived' and base class 'base'
-
V302. Member operator[] of 'foo' class has a 32-bit type argument. Use memsize-type here
-
V303. The function is deprecated in the Win64 system. It is safer to use the 'foo' function
-
Режимы работы анализатора кода
-
V004. For a more precise verification, please select x64 or Itanium configuration instead of Win32
-
V124. Function 'Foo' writes/reads 'N' bytes. The alignment rules and type sizes have been changed. Consider reviewing this value
-
V125. It is not advised to declare type 'T' as 32-bit type
-
V126. Be advised that the size of the type 'long' varies between LLP64/LP64 data models
-
V501. There are identical sub-expressions to the left and to the right of the 'foo' operator
-
V502. Perhaps the '?:' operator works in a different way than it was expected. The '?:' operator has a lower priority than the 'foo' operator
-
V503. This is a nonsensical comparison: pointer < 0
-
V504. It is highly probable that the semicolon ';' is missing after 'return' keyword
-
V505. The 'alloca' function is used inside the loop. This can quickly overflow stack
-
V506. Pointer to local variable 'X' is stored outside the scope of this variable. Such a pointer will become invalid
-
V507. Pointer to local array 'X' is stored outside the scope of this array. Such a pointer will become invalid
-
V508. The use of 'new type(n)' pattern was detected. Probably meant: 'new type[n]'
-
V509. The 'throw' operator inside the destructor should be placed within the try..catch block. Raising exception inside the destructor is illegal
-
V510. The 'Foo' function is not expected to receive class-type variable as 'N' actual argument
-
V511. The sizeof() operator returns size of the pointer, and not of the array, in given expression
-
V512. A call of the 'Foo' function will lead to a buffer overflow or underflow
-
V513. Use _beginthreadex/_endthreadex functions instead of CreateThread/ExitThread functions
-
V514. Dividing sizeof a pointer by another value. There is a probability of logical error presence
-
V515. The 'delete' operator is applied to non-pointer
-
V516. Consider inspecting an odd expression. Non-null function pointer is compared to null
-
V517. The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence
-
V518. The 'malloc' function allocates strange amount of memory calculated by 'strlen(expr)'. Perhaps the correct variant is strlen(expr) + 1
-
V519. The 'x' variable is assigned values twice successively. Perhaps this is a mistake
-
V520. The comma operator ',' in array index expression
-
V521. Such expressions using the ',' operator are dangerous. Make sure the expression is correct
-
V522. Dereferencing of the null pointer might take place
-
V523. The 'then' statement is equivalent to the 'else' statement
-
V524. It is odd that the body of 'Foo_1' function is fully equivalent to the body of 'Foo_2' function
-
V525. The code containing the collection of similar blocks. Check items X, Y, Z, ... in lines N1, N2, N3,
-
V526. The 'strcmp' function returns 0 if corresponding strings are equal. Consider examining the condition for mistakes
-
V527. It is odd that the 'zero' value is assigned to pointer. Probably meant: *ptr = zero
-
V528. It is odd that pointer is compared with the 'zero' value. Probably meant: *ptr != zero
-
V529. Odd semicolon ';' after 'if/for/while' operator
-
V530. The return value of function 'Foo' is required to be utilized
-
V531. It is odd that a sizeof() operator is multiplied by sizeof()
-
V532. Consider inspecting the statement of '*pointer++' pattern. Probably meant: '(*pointer)++'
-
V533. It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'X'
-
V534. It is likely that a wrong variable is being compared inside the 'for' operator. Consider reviewing 'X'
-
V535. The variable 'X' is being used for this loop and for the outer loop
-
V536. Be advised that the utilized constant value is represented by an octal form
-
V537. Consider reviewing the correctness of 'X' item's usage
-
V538. The line contains control character 0x0B (vertical tabulation)
-
V539. Consider inspecting iterators which are being passed as arguments to function 'Foo'
-
V540. Member 'x' should point to string terminated by two 0 characters
-
V541. It is dangerous to print the string into itself
-
V542. Consider inspecting an odd type cast: 'Type1' to ' Type2'
-
V543. It is odd that value 'X' is assigned to the variable 'Y' of HRESULT type
-
V544. It is odd that the value 'X' of HRESULT type is compared with 'Y'
-
V545. Such conditional expression of 'if' operator is incorrect for the HRESULT type value 'Foo'. The SUCCEEDED or FAILED macro should be used instead
-
V801. Decreased performance. It is better to redefine the N function argument as a reference. Consider replacing 'const T' with 'const .. &T' / 'const .. *T'
-
V546. Member of a class is initialized by itself: 'Foo(Foo)'
-
V547. Expression is always true/false
-
V548. Consider reviewing type casting. TYPE X[][] in not equivalent to TYPE **X
-
V549. The 'first' argument of 'Foo' function is equal to the 'second' argument
-
V005. Cannot determine active configuration for project. Please check projects and solution configurations
-
V550. An odd precise comparison. It's probably better to use a comparison with defined precision: fabs(A - B) < Epsilon or fabs(A - B) > Epsilon
-
V551. The code under this 'case' label is unreachable
-
V552. A bool type variable is being incremented. Perhaps another variable should be incremented instead
-
V553. The length of function's body or class's declaration is more than 2000 lines long. You should consider refactoring the code
-
V554. Incorrect use of smart pointer
-
V555. The expression of the 'A - B > 0' kind will work as 'A != B'
-
V556. The values of different enum types are compared
-
V557. Array overrun is possible
-
V558. Function returns the pointer to temporary local object
-
V802. On 32-bit/64-bit platform, structure size can be reduced from N to K bytes by rearranging the fields according to their sizes in decreasing order
-
V006. File cannot be processed. Analysis aborted by timeout
-
V559. Suspicious assignment inside the condition expression of 'if/while/for' operator
-
V560. A part of conditional expression is always true/false
-
V561. It's probably better to assign value to 'foo' variable than to declare it anew
-
V562. It's odd to compare a bool type value with a value of N
-
V204. Explicit conversion from 32-bit integer type to pointer type
-
V205. Explicit conversion of pointer type to 32-bit integer type
-
V563. It is possible that this 'else' branch must apply to the previous 'if' statement
-
V564. The '&' or '|' operator is applied to bool type value. You've probably forgotten to include parentheses or intended to use the '&&' or '||' operator
-
V565. An empty exception handler. Silent suppression of exceptions can hide the presence of bugs in source code during testing
-
V566. The integer constant is converted to pointer. Possibly an error or a bad coding style
-
V567. Undefined behavior. The variable is modified while being used twice between sequence points
-
V568. It's odd that the argument of sizeof() operator is the expression
-
V569. Truncation of constant value
-
V803. Decreased performance. It is more effective to use the prefix form of ++it. Replace iterator++ with ++iterator
-
Settings: Customers Specific Settings
-
V007. Verification of CLR projects is not implemented. Incorrect diagnostics are possible
-
V570. The variable is assigned to itself
-
V571. Recurring check. This condition was already verified in previous line
-
V572. It is odd that the object which was created using 'new' operator is immediately casted to another type
-
V804. Decreased performance. The 'Foo' function is called twice in the specified expression to calculate length of the same string
-
V220. Suspicious sequence of types castings: memsize -> 32-bit integer -> memsize
-
V573. Uninitialized variable 'Foo' was used. The variable was used to initialize itself
-
V574. The pointer is used simultaneously as an array and as a pointer to single object
-
V575. Function receives an odd argument
-
V576. Incorrect format. Consider checking the N actual argument of the 'Foo' function
-
V577. Label is present inside a switch(). It is possible that these are misprints and 'default:' operator should be used instead
-
V578. An odd bitwise operation detected. Consider verifying it
-
V805. Decreased performance. It is inefficient to identify an empty string by using 'strlen(str) > 0' construct. A more efficient way is to check: str[0] != '\0'
-
V127. An overflow of the 32-bit variable is possible inside a long cycle which utilizes a memsize-type loop counter
-
V579. The 'Foo' function receives the pointer and its size as arguments. It is possibly a mistake. Inspect the N argument
-
V580. An odd explicit type casting. Consider verifying it
-
V581. The conditional expressions of the 'if' operators situated alongside each other are identical
-
V582. Consider reviewing the source code which operates the container
-
Предопределенный макрос PVS_STUDIO
-
V583. The '?:' operator, regardless of its conditional expression, always returns one and the same value
-
V584. The same value is present on both sides of the operator. The expression is incorrect or it can be simplified
-
V585. An attempt to release the memory in which the 'Foo' local variable is stored
-
V586. The 'Foo' function is called twice for deallocation of the same resource
-
V587. An odd sequence of assignments of this kind: A = B; B = A;
-
V806. Decreased performance. The expression of strlen(MyStr.c_str()) kind can be rewritten as MyStr.length()
-
V588. The expression of the 'A =+ B' kind is utilized. Consider reviewing it, as it is possible that 'A += B' was meant
-
V589. The expression of the 'A =- B' kind is utilized. Consider reviewing it, as it is possible that 'A -= B' was meant
-
V590. Consider inspecting this expression. The expression is excessive or contains a misprint
-
V591. Non-void function should return a value
-
V592. The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present
-
V593. Consider reviewing the expression of the 'A = B == C' kind. The expression is calculated as following: 'A = (B == C)'
-
V008. Unable to start the analysis on this file
-
V2003. Explicit conversion from 'float/double' type to signed integer type
-
V2004. Explicit conversion from 'float/double' type to unsigned integer type
-
V2005. C-style explicit type casting is utilized. Consider using: static_cast/const_cast/reinterpret_cast
-
Работа со списком диагностических сообщений
-
V009. Intel C++ project toolset is not supported. Select Visual C++ toolset to verify this project
-
V594. The pointer steps out of array's bounds
-
V595. The pointer was utilized before it was verified against nullptr. Check lines: N1, N2
-
V596. The object was created but it is not being used. The 'throw' keyword could be missing
-
Старая история версий PVS-Studio (до версии 4.00)
-
V597. The compiler could delete the 'memset' function call, which is used to flush 'Foo' buffer. The RtlSecureZeroMemory() function should be used to erase the private data
-
V598. The 'memset/memcpy' function is used to nullify/copy the fields of 'Foo' class. Virtual method table will be damaged by this
-
V599. The virtual destructor is not present, although the 'Foo' class contains virtual functions
-
V600. Consider inspecting the condition. The 'Foo' pointer is always not equal to NULL
-
V601. An odd implicit type casting
-
Советы по повышению скорости работы PVS-Studio
-
V602. Consider inspecting this expression. '<' possibly should be replaced with '<<'
-
V603. The object was created but it is not being used. If you wish to call constructor, 'this->Foo::Foo(....)' should be used
-
V807. Decreased performance. Consider creating a pointer/reference to avoid using the same expression repeatedly
-
Команды меню PVS-Studio
-
Режим инкрементального анализа PVS-Studio
-
V604. It is odd that the number of iterations in the loop equals to the size of the pointer
-
V605. Consider verifying the expression. An unsigned value is compared to the number - NN
-
V606. Ownerless token 'Foo'
-
V607. Ownerless expression 'Foo'
-
V608. Recurring sequence of explicit type casts
-
V609. Divide or mod by zero
-
V610. Undefined behavior. Check the shift operator
-
V611. The memory allocation and deallocation methods are incompatible
-
Развертывание PVS-Studio в больших командах
-
V612. An unconditional 'break/continue/return/goto' within a loop
-
V613. Strange pointer arithmetic with 'malloc/new'
-
V614. Uninitialized variable 'Foo' used
-
Даг Сонг. Статический анализ кода с инструментом поиска исходного кода Google Code Search
-
Джек Ганссли. Не сдержанное обещание качества
-
Хосе Ф. Руис. Избегайте переполнения стэка: Статический анализ стэка в системах с высоким уровнем интеграции
-
Перечень инструментов статического анализа кода
-
Ник Винхольт. Знакомство с анализатором C/C++ кода в VSTS
-
Корпорация Parasoft. Статический анализ на стероидах: технология BugDetective от Parasoft
-
Рауль Джетли, Пол Андерсон. Использование статического анализа для оценки программного обеспечения в медицинских устройствах
-
Роэл Вуйтс. Инструменты для анализа C++ кода
-
Скотт Мейерз, Мартин Клаус. Знакомство с анализаторами C++ программ
-
Сергей Соколов. "Бронирование" C++ кода
-
Статический анализ кода (материал из Википедии)
-
Стив Гутз. Статический анализатор кода IBM Rational Software Analyzer: первое знакомство
-
Стивен Лэйвенхар. Анализ кода
-
Уолтер В. Шиллинг младший и Мансур Элам. Внедрение статического анализа в процесс разработки программного обеспечения
-
Уолтер В. Шиллинг младший, Мансур Элам. Интеграция статического анализа в процесс разработки программного обеспечения
-
Сид Сиднер. Когда важны качество и безопасность
-
Михаэль Зюсс, М. Саб, Клаудия Леопольд. Наиболее распространенные ошибки в OpenMP и способы избежать их - свод лучших практических решений
-
Нэйвал Копти. Введение в OpenMP: легкопереносимый API параллельного программирования для многопроцессорных компьютеров с общей памятью
-
Канг Су Гатлин, Пит Айсенси. Пожинайте плоды многопоточного программирования без лишних усердий
-
Yuan Lin. Common Mistakes in Using OpenMP 5: Assuming Non-existing Synchronization Before Entering Worksharing Construct
-
HPCBugBase (База данных ошибок, связанных с высокопроизводительными вычислениями)
-
Михаэль Зюсс, М. Саб, А. Подлич, Клаудия Леопольд. Проблемы, "заплатки" и возможные решения при реализации шаблона одноэлементного множества в Си++ и OpenMP
-
Михаэль Зюсс, М. Саб, Клаудия Леопольд. Сравнение вариантов реализации задачного пула в OpenMP и решение проблемы активного ожидания
-
Эрик Ниблер. Репортаж с места событий: встреча специалистов по обеспечению параллельности в Си++
-
Михаэль Зюсс. Почему для параллельного программирования стоит выбирать OpenMP
-
Михаэль Зюсс. Что усложняет параллельное программирование?
-
Энвар Гулом. Что усложняет параллельное программирование?
-
Михаэль Зюсс, Клаудия Леопольд. Пользовательский опыт работы с алгоритмом сортировки в параллельной программе с использованием OpenMP
-
Михаэль Зюсс, М. Саб, Клаудия Леопольд. Реализация нерегулярных параллельных алгоритмов с помощью OpenMP
-
Рууд ван де Па. Использование OpenMP для распараллеливания приложений под технологию CMT
-
Михаэль Зюсс. Scoped locking против директивы critical в OpenMP - личный опыт
-
Михаэль Зюсс. Забавное параллельное программирование - перенесение зависимости в цикле
-
Херб Саттер. Халява закончилась: Ключевой поворот к параллельности в программном обеспечении
-
Михаэль Зюсс, М. Саб, Клаудия Леопольд. Оценка состояния систем параллельного программирования
-
Михаэль Зюсс. Как реализовать функцию ONCE в OpenMP
-
Виньет Кумар Джейн. OpenMP: технология, которая высвобождает мощь многоядерных систем
-
Рауль В. Патил, Боби Джордж. Инструменты и методы для обнаружения проблем параллелизма
-
Рик Мерритт. M'soft: модель параллельного программирования через 10 лет
-
Джон Э. Уэст. Превращая "параллельное программирование" в синоним "программирования"
-
Джоэл Илилуома. Введение в OpenMP: Доступное многопоточное программирование для Си++
-
Нэйвал Копти. Поддержка OpenMP в компиляторах и инструментах Sun Studio
-
Джим Демпси. Родственные потоки и гибкое планирование потоков
-
Джек Вур. A == !A, или что случилось с моим приложением?
-
Джефф Мейсел. Многопоточное программирование
-
Клэй П. Бреширз. Инструменты для параллельного программирования Intel Threading Tools и OpenMP
-
Введение в OpenMP, части 1 и 2
-
Керри Д. Уонг. Производительность Си++ кода при операции перемножения матриц
-
Ричард Гербер. Продвинутое OpenMP-программирование
-
Херб Саттер. Правильное использование потоков данных равняется изоляция данных плюс асинхронные сообщения
-
Распараллеливание задачи N ферзей с помощью Intel Parallel Composer
-
FAQ по OpenMP
-
Кристиан Тербовен. Как убить OpenMP к 2011 году?!
-
Deadline. Стратегии многоядерности: MPI и OpenMP
-
Мэтт Питрек. Все, что нужно знать для программирования 64-битных Windows-систем
-
Джон Пол Меллер. 24 совета по переносу приложения на 64-битную платформу
-
64-битное программирование для разработчиков игр
-
Тим Манган. Перенос С++ приложений на x64
-
64-битные модели программирования: почему именно LP64?
-
Эндрю Джозей. Независимость от размеров данных и поддержка 64 бит
-
Встречайте: инсайдер от 64 бит
-
Джереми Гордон. Написание 64-битных программ
-
Алан Зейчик. Linux-инструментарий для AMD64-разработчиков
-
Стэн Муравски. За пределами Windows XP: Будьте готовы к появлению 64-битной версии Windows
-
Брэд Мартин, Анита Реттингер, Джасмит Синг. Кросс-платформенный перенос на 64 бита
-
Харша Джагазиа. Рекомендации по повышению производительности для разработчиков на многопроцессорных платформах Athlon 64 и Opteron ccNUMA под Microsoft Windows
-
Андерсон Бэйли. AMD64 и Новая Математика
-
Сборка AMD64 приложений с помощью Microsoft Platform SDK
-
Конрад Картер. Ключи C/C++ компилятора и быстрый, переносимый 64-битный код
-
Настройка совместимости проектов Microsoft Visual Studio с архитектурой AMD64
-
Джон Пол Меллер. Обзор 64-битных инструментов в Visual Studio 2005
-
Перенос приложения на 64-битный Linux на серверах HP Integrity
-
Майк Уолл. Перенос и оптимизация приложений под 64-битный Windows на архитектуре AMD64
-
Майк Уолл. Перенос приложений на AMD64 под Windows
-
Харша С. Адига. Перенос Linux-приложений на 64-битные системы
-
Аллан МакНотон. Перенос Linux-приложений на 64-битную архитектуру Intel
-
Рич Ньюман. Устранение ошибок работы с памятью на 64-битных платформах
-
Сачин Р. Шангой. Архитектура 64-битной операционной системы
-
Джон Р. Машей. Долгая дорога к 64 битам
-
Аллан МакНотон. AMD Developer Central: Универсальный Интернет-магазин для разработки 64-битного программного обеспечения
-
Канг Су Гатлин. Выравнивание данных в Windows на IPF, x86 и x64
-
Грегори Тарси, Нейл Тода. Вычисления с плавающей запятой: комедия ошибок?
-
Преодоление пропасти между 32-битными и 64-битными приложениями
-
Преобразование 32-битных приложений в 64-битные: на что обратить внимание
-
Энди Патрицио. Изучение случая: Как и почему Microsoft перешла на AMD64
-
Перенос 32-битного управляемого кода на 64-битные системы
-
Преобразование 32-битного кода в 64-битный
-
Харша Джагазиа. Перенос и оптимизация кодеков мультимедиа для архитектуры AMD64 под Microsoft Windows
-
Андерсон Бейли. Инструменты и технологии развития программного обеспечения под 64-битную версию Linux
-
Рэймонд Чен. Хорошо забытое старое: История соглашений о вызовах, часть 5: amd64
-
Рэймонд Чен. Хорошо забытое старое: Почему команда Win64 выбрала модель LLP64?
-
Мэтт Тирлик. Перенос на 64 бита
-
Дэниел Пистелли. Переходим к Windows Vista x64
-
Эрик Палмер. CPUID на платформах x64 и Microsoft Visual Studio .NET 2005
-
Эндрю Бинсток. Перенос приложений на 64-битную архитектуру Intel
-
Стивен Дж. Воэн-Николс. Почему развитие программного обеспечения не успевает за развитием аппаратных средств
-
Бруно Теркали. 64-битое программирование на Visual C++
-
Майк Бекер. Доступ к 32-битным DLL из 64-битного кода
-
Дэн Сакс. Чем примечателен тип size_t
-
Вперед к 64-битному коду с Visual Studio 6
-
32-битные указатели в 64-битном мире
-
Visual C++ 2008 Express Edition и 64-битные платформы
-
64-битный ODBC
-
Кенни Керр. Windows и C++. Отладка на x64 при помощи псевдо-переменных и спецификаторов формата
-
Блог Эрика Липперта. "Недостаточно памяти" не относится к физической памяти
-
Перечень нюансов разработки драйверов для 64-битной Microsoft Windows
-
Ши Куо. Учет топологии процессора в архитектуре Intel® 64
-
Microsoft Corporation. Полезные привычки при работе с WOW64
-
Microsoft Corporation. Разработка 64-битных систем
-
Ирвинг Рабин. Перенос кода на 64-битные платформы
-
Алекс Ионеску. Про ограничение в 44 бита для адресации виртуальной памяти в 64-битной версии Windows
-
Уолтер Брайт. Паттерны ошибок
-
Филипп Дж. Гуо, Доусон Энглер. Как разработчики ядра Linux реагируют на сообщения об ошибках, выдаваемые инструментами статического анализа
-
Гэри МакГро, Джон Стивен. [Не]безопасность программного обеспечения: как мы сравниваем яблоки, апельсины и муравьедов, Или статические анализаторы не созданы равными
-
Microsoft. Использование статического анализа в Visual Studio 2010 в целях повышения качества кода
-
Гай Стили. Как (не) думать о параллельном программировании
-
ESET Team. Руткиты TDSS (часть 1: The x64 Dollar Question)
-
Статический анализ C++ кода
-
Команда Coverity. Миллиарды строк кода спустя: обнаружение ошибок в реальном мире с помощью статического анализа
-
Адитья Пратап Буян. Процедура ревизии кода, принципы и инструменты
-
Адам Колава. Когда, почему и как: Анализ кода
-
Эли Бендерски. Схема организации стека на платформе x86-64
-
Боян Комажек. 32-битная и 64-битная версии C++ приложения для Windows
-
Джим Бёрд. Статический анализ не является средством тестирования на стадии разработки
-
Аджай Виджайварджия. Все об Анализе Кода в Visual C++
-
Дэвид Церезо Санчез. Статический анализ против формальных методов ревизии кода
-
Пьер Морел-Фури. Анализ C++ кода в Visual Studio 2012
-
Кристиан Вожнер. "Эффект WOW"
-
Remah. О 32 битах и 64 битах
-
Брюс Доусон. 64 бита – легко!
-
Роберт Гэмбл. Современный статический анализатор для языков C и C++
-
Магнус Юнмир. Разработка встраиваемого ПО – больше, чем просто программирование
-
С.Г. Ганеш. Радость программирования: принцип работы инструментов статического анализа
-
Статический анализ для тестирования приложений в процессе разработки
-
Майкл Барр. Механизмы автоматического соблюдения стандартов кодирования
-
Кристиан Холлер. Испытание новых методик анализа кода
-
Артур Хикен. Что такое статический анализ... И для чего он нужен
-
Фрэнк Ким. Семь советов, как выбрать статический анализатор
-
Джеремайя Гроссман. Развенчивание мифа о том, что статический анализ кода дает 100% покрытие кода
-
Джей Абрахам, Марк Лало. Использование статического анализа и проверки кода в целях улучшения качества встраиваемого ПО
-
Military Embedded Systems. Переходим на более глубокие уровни статического анализа потока данных – Интервью с Джилл Бриттон, менеджером группы по услугам консультирования в PRQA