CppCat – это простой статический анализатор кода для поиска ошибок в программах на языке Си/Си++. Мы начали выдавать бесплатные академические лицензии всем желающим (студентам, преподавателям и так далее). Для большей популяризации CppCat среди студентов я решил написать эту заметку об ошибках, которые можно найти в лабораторных работах, встречающихся на сайте Pastebin.com.
Читать полностью »
Рубрика «статический анализ кода» - 24
Почему студентам нужен анализатор кода CppCat
2014-12-10 в 8:05, admin, рубрики: c++, cppcat, pvs-studio, static code analysis, Visual Studio, Блог компании PVS-Studio, обучение программированию, разработка под windows, статический анализ кода, студентамТехосмотр движка Spring RTS
2014-12-03 в 7:43, admin, рубрики: c++, game development, open source, pvs-studio, Блог компании PVS-Studio, статический анализ кода Spring RTS — это движок для игр в жанре «стратегия реального времени». Изначально Spring был написан для повторения популярной в 900-е игры Total Annihilation. В дальнейшем появилось много других красивых и интересных стратегий на этом движке, в том числе и коммерческих. Игры под него кроссплатформенные и представляют из себя трёхмерные стратегии реального времени с огромными картами и большим количеством боевых и строительных юнитов. У игр возникают проблемы со стабильностью. Попробуем взглянуть на исходники (благо, проект открытый).
Читать полностью »
Проект Miranda NG получает приз «дикие указатели» (часть вторая)
2014-11-28 в 7:20, admin, рубрики: bug, bugs, c++, code review, pvs-studio, Блог компании PVS-Studio, ошибки в программе, разработка под windows, Си, статический анализ кода
Продолжим рассматривать ошибки, которые удалось обнаружить в проекте Miranda NG с помощью статического анализатора кода PVS-Studio. В прошлый раз мы говорили об указателях и работе с памятью. Теперь поговорим об ошибках общего плана, которые, в основном, связаны с неаккуратностью и опечатками.
Читать полностью »
Проект Miranda NG получает приз «дикие указатели» (часть первая)
2014-11-25 в 7:43, admin, рубрики: c++, pvs-studio, Блог компании PVS-Studio, дикие указатели, обзор кода, ошибки в коде, разработка под windows, статический анализ кода
Я добрался до проекта Miranda NG и проверил его с помощью анализатора кода PVS-Studio. К сожалению, с точки зрения работы с памятью и указателями это самый неаккуратный проект из виданных мной. Хотя я внимательно не анализировал результаты, ошибок столь много, что я решил разбить собранный материал на 2 статьи. Первая статья будет посвящена указателям, а вторая всему остальному. Желаю приятного чтения, и не забудьте взять попкорн.
Читать полностью »
Бесплатный CppCat для студентов
2014-11-13 в 13:04, admin, рубрики: c++, c++/cx, c++11, cppcat, pvs-studio, Visual Studio, Блог компании PVS-Studio, инструменты разработчика, Си, статический анализ кода, халява, халява студентам
CppCat – это статический анализатор кода, интегрирующийся в среду Visual Studio 2010-2013. Анализатор предназначен для регулярного использования и позволяет выявить множество ошибок и опечаток в программах на языке Си и Си++. С целью его популяризации мы решили выдавать бесплатные лицензии всем студентам, которые к нам обратятся. Достаточно прислать фотографию студенческого билета или зачётной книжки.
Читать полностью »
Тяп-ляп, проверил библиотеки Visual C++ 2013 (update 3)
2014-10-13 в 10:29, admin, рубрики: c++, pvs-studio, static code analysis, visual c++, Visual Studio, visual studio 2013, vs2013, Блог компании PVS-Studio, ошибки в программе, статический анализ кода Мне предложили проверить библиотеки, входящие в Visual Studio 2013. Ничего особенно примечательного я не нашёл. Только несколько мелких ошибок и недочётов. Интригующую статью из этого не сделаешь, но я всё равно опишу замеченные недостатки. Надеюсь, это сделает библиотеки чуть лучше, и подвигнет авторов провести более тщательную проверку. У меня нет файлов проектов для сборки библиотек. Поэтому я проверял файлы кое-как, и много могло быть пропущено.
Читать полностью »
Единорог заинтересовался KDE
2014-09-29 в 8:03, admin, рубрики: c++, kde4, linux, pvs-studio, Блог компании PVS-Studio, ошибки в программе, Программирование, статический анализ кода
KDE (сокращение от K Desktop Environment) — среда рабочего стола, преимущественно для Linux и других UNIX-подобных систем. Если простым языком, то это та штука, которая отвечает за всё графическое оформление. Среда построена на основе кроссплатформенного инструментария разработки пользовательского интерфейса Qt. Разработкой занимаются несколько сотен программистов со всего мира, преданных идее свободного программного обеспечения. KDE предлагает полный набор приложений пользовательского окружения, который позволяет взаимодействовать с операционной системой в современном графическом интерфейсе. Давайте же посмотрим, что у KDE под капотом.
Читать полностью »
Как участвовать в проекте с открытым исходным кодом и получать деньги?
2014-09-25 в 7:57, admin, рубрики: Git, github, klocwork, open source, pvs-studio, python, valgrind, статический анализ, статический анализ кодаЗдравствуй!
Многие команды разработчиков участвую в конкурсах и акселераторах. Выигрывают призы или получают финансирование.
Что делать, если вы не успели сесть в проходящий поезд?
Есть несколько вариантов. Один из них это начать свой проект и ждать когда он взлетит, при этом тратить время на создание кода и рекламу проекта в конкурсах, акселераторах, переговорах с инвесторами. В случае успеха надо находить специалистов поднимать инфраструктуру. Ряд виртуальных или реальных серверов для сайта, программистов, базы данных, клиентов. В итоге, многие проекты так и не взлетев попадают на GitHub и другие подобные ресурсы.
Читать полностью »
Статический анализ динамически формируемых выражений
2014-09-22 в 14:35, admin, рубрики: .net, IDE, sql, синтаксический анализ, среда разработки, статический анализ кода, текстовые DSLВведение
Часто при разработке сложных программных систем используется более одного языка программирования — даже в рамках одного файла с исходным кодом. В таком случае принято говорить об основном (или исходном) языке и одном или нескольких встроенных языках. Из строковых выражений основного языка динамически формируются программы на отличном от него языке, которые потом интерпретируются специальными, работающими во время исполнения компонентами, такими как базы данных или веб-браузеры. Большинство языков программирования общего назначения могут играть роль как основного, так и встроенного языка. Ниже приведены примеры использования встроенных языков.
Выполнение кода на JavaScript из кода, написанного на Java:
import javax.script.*;
public class InvokeScriptFunction {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
// JavaScript code in a String
String script = "function hello(name) {print('Hello, ' + name);}";
// evaluate script
engine.eval(script);
}
}
Проверяем Oracle VM VirtualBox. Часть 2
2014-09-22 в 13:00, admin, рубрики: c++, pvs-studio, virtualbox, Блог компании PVS-Studio, виртуализация, ошибки в программе, Программирование, статический анализ кода
Виртуальные машины используются для самых разных нужд. Сам я уже не один год использую VirtualBox для тестирования ПО и просто изучения различных дистрибутивов Linux, собственно, после длительного использования, периодически сталкиваясь с неопределённым поведением, я решил воспользоваться своим опытом в проверке open-source проектов и проанализировать исходный код Oracle VM Virtual Box.
В этой статье я продолжу описывать многочисленные подозрительные места, найденные в проекте.
Читать полностью »