PVS-Studio

Проблемы 64-битного кода в реальных программах: виртуальные функции

Об одной проблеме при миграции кода на 64-битные системы, связанной с некорректной перегрузкой виртуальных функций мы писали в наших статьях уже давно. Например, наша статья "20 ловушек переноса Си++ - кода на 64-битную платформу" вышла в марте 2007 года (хотя ничуть не утратила актуальности). В ней было описание проблемы с виртуальными функциями. Суть проблемы заключается в следующем. С незапамятных времен в библиотеке MFC есть класс CWinApp, в котором имеется функция WinHelp:

Проверка Linux-приложений с помощью PVS-Studio на Windows

Не так давно мой коллега Евгений Рыжков в нашем корпоративном блоге описал новые возможности PVS-Studio, связанные с проверкой программ в которых используется модель данных LP64. Я хочу поделиться этим описанием с сообществом разработчиков в этом блоге.

PVS-Studio и проверка Loki

В PVS-Studio 3.10 будет существенно улучшена поддержка сложных конструкций, основанных на шаблонах, что позволяет эффективно искать ошибки даже в коде тех программ, где используются сложные шаблонные библиотеки, такие как Loki. Но начнем по порядку.

A blog devoted to static code analysis, 64-bit and parallel application development

Hello!
With this note we begin our blog on ISN site. "We" is a Russian startup, OOO "Program Verification Systems", http://www.viva64.com .

The blog will be conducted by two people - director general Evgeniy Ryzhkov and scientific consultant Andrey Karpov. Our company develops and distributes the static code analyzer PVS-Studio intended for detecting errors in the source code of parallel and 64-bit programs.

Магические константы и функция malloc()

Вновь хочется вернуться к вопросу использования магических констант в коде. Можно сколько угодно говорить, что для вычисления корректного размера выделяемой памяти необходимо использовать оператор sizeof(). Но эти знания и корректное написание нового кода не помогут в диагностировании уже существующей ошибки в дебрях старого кода в больших проектах.

Приведем классический пример ошибки:
size_t nCount = 10;

int **poinerArray = (int **)malloc(nCount * 4);

An unsuccessful attempt to compare PVS-Studio (VivaMP) and Intel C/C++ ("Parallel Lint")

Absence of sufficient information about "Parallel Lint" restrained the author's abilities and the article turned out to be just a preliminary variant of the comparison.
  • C/C++
  • Intel® C++-Compiler
  • OpenMP*
  • VivaMP
  • parallel lint
  • PVS-Studio
  • Parallel Computing
  • Threading
  • Seiten

    PVS-Studio abonnieren