-
Представление информации на сайте
22.10.2009Обращаюсь к читателям блога за советом о том, как разместить информацию на нашем сайте. Со временем сайт www.viva64.com помимо программного продукта для анализа кода PVS-Studio, который мы разрабатываем и продаем, стал содержать еще статьи и блог для программистов, презентации/демонстрации/буклеты про анализатор кода PVS-Studio, прочую традиционную для корпоративных сайтов информацию. Читать -
64-битный мир становится ближе
07.10.2009Занимаясь созданием инструментов для разработчиков 64-битных приложений, я постоянно слежу за ситуацией в мире. Какие выходят новые процессоры, какие новые операционные системы и технологии. Это нужно для того, чтобы понимать тенденции развития отрасли и в соответствии с этими тенденциями строить свои планы. Читать -
Возможные проблемы с stdafx.h при использовании PVS-Studio
15.09.2009Иногда при проверке кода приложений с помощью PVS-Studio могут возникнуть проблемы с файлом stdafx.h, который представляет собой часть механизма "precompiled headers". Например, PVS-Studio может сообщать, что этот файл не найден. Или при наличии нескольких файлов stdafx.h будет использоваться не тот файл, который должен. При этом компиляция в Visual C++ проходит нормально. Читать -
Проблемы 64-битного кода в реальных программах: виртуальные функции
15.09.2009Об одной проблеме при миграции кода на 64-битные системы, связанной с некорректной перегрузкой виртуальных функций мы писали в наших статьях уже давно. Например, наша статья "20 ловушек переноса Си++ - кода на 64-битную платформу" вышла в марте 2007 года (хотя ничуть не утратила актуальности). В ней было описание проблемы с виртуальными функциями. Суть проблемы заключается в следующем. С незапамятных времен в библиотеке MFC есть класс CWinApp, в котором имеется функция WinHelp:. Читать -
Cannot process the whole file "foo.cpp"
14.09.2009Анализатор PVS-Studio не всегда может полностью проанализировать файл с исходным кодом. Причины могут быть разные. Возможно, анализатор не смог разобрать особенно сложный шаблон или что-то еще. Такое редко, но все же случается. Как правило, это несущественно с точки зрения анализа, так как непроанализированным остается совсем небольшой участок кода. Поэтому предупреждение "Cannot process the whole file" выдается анализатором PVS-Studio только, если в настройках включен режим "Pedantic mode". Читать -
Магические константы и функция malloc()
07.09.2009Вновь хочется вернуться к вопросу использования магических констант в коде. Можно сколько угодно говорить, что для вычисления корректного размера выделяемой памяти необходимо использовать оператор sizeof(). Но эти знания и корректное написание нового кода не помогут в диагностировании уже существующей ошибки в дебрях старого кода в больших проектах. Читать -
Обработка исключений внутри параллельных секций
07.09.2009Некоторое время назад я писал в блоге о проблемах (см. запись "OpenMP и исключения (exceptions)"), которые возникают при выходе исключения за пределы параллельных регионах. В том числе я рассказал, что исключение может быть сгенерировано оператором new и его необходимо обязательно перехватить и обработать до того, как оно покинет параллельный регион. Конструкции для этого выглядят достаточно неудобно и громоздко. И не так давно мне написали, что в данном случае более изящным решением будет использование оператора new, не генерирующего исключения. То есть использование "nothrow"-варианта оператора new, который возвращает NULL в случае неудачи, позволяет писать более простой OpenMP код. Читать -
Проблемы 64-битного кода в реальных программах: магические константы
28.08.2009Вновь хочется рассказать об очередной 64-битной ошибке, найденной нами в одной из программ. Публиковать в блоге интересные и специфичные ошибки программирования для 64-битных систем постепенно становится хорошей традицией, которой мы постараемся следовать. Читать -
PVS-Studio выдает ошибку "Some diagnostic messages may contain incorrect line number for file ..."
28.08.2009Иногда анализатор кода PVS-Studio может выдавать следующую ошибку: "Some diagnostic messages may contain incorrect line number for file ...". Такое может происходить, если вы используете Microsoft Visual Studio 2005 без обновления Visual Studio Service Pack 1. Это именно ошибка (error), а не диагностическое сообщение (warning). В этой заметке мы расскажем, что это за сообщение и как на него реагировать. Читать -
PVS-Studio и проверка Loki
06.08.2009В PVS-Studio 3.10 будет существенно улучшена поддержка сложных конструкций, основанных на шаблонах, что позволяет эффективно искать ошибки даже в коде тех программ, где используются сложные шаблонные библиотеки, такие как Loki. Но начнем по порядку. Читать