Движков с открытым исходным кодом, написанных на C++, куда больше, чем аналогичных движков, написанных на C#. Но есть исключения. Xenko – один из движков, написанных на C# и имеющих открытый исходный код. О том, что же интересного удалось найти в коде этого движка, будет рассказано в этой статье.
Читать полностью »
Рубрика «Блог компании PVS-Studio» - 38
Ищем ошибки в игровом движке Xenko
2016-03-09 в 13:51, admin, рубрики: .net, C#, dotnet, game development, game engine, open source, paradox, pvs-studio, static code analysis, Xenko, Блог компании PVS-Studio, статический анализ кодаPVS-Studio покопался в ядре FreeBSD
2016-02-17 в 16:48, admin, рубрики: C, c++, freebsd, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, Компиляторы, Си, статический анализ кода Около года назад мы смогли проверить ядро Linux. Это была одна из самых обсуждаемых статей о проверке open-source проекта за всё время. Предложения обратить внимание и на FreeBSD тогда активно поступали, но только сейчас появилось достаточно времени, чтобы это сделать.
Читать полностью »
Единорог в космосе: проверяем исходный код ‘Space Engineers’
2016-02-12 в 10:05, admin, рубрики: .net, C#, dotnet, game development, open source, pvs-studio, spaceengineers, static code analysis, Блог компании PVS-Studio, статический анализ кодаКак вы уже поняли из заголовка, речь в статье будет идти о подозрительных местах, найденных в исходном коде 'Space Engineers'. Но формат статьи несколько отличается от остальных. Помимо информации о проекте, обзора некоторых найденных подозрительных мест и ошибок, а также способов их исправления, я включил в текст небольшой раздел о правильном сценарии использования статического анализатора. Настоятельно рекомендую ознакомиться с ним, так как многие разработчики не знают или просто не задумываются о том, как правильно использовать инструменты этого класса. В результате инструменты статического анализа используются на порядок менее эффективно, чем могли бы.
Читать полностью »
Проверяем исходный код WPF примеров от компании Infragistics
2016-02-10 в 13:19, admin, рубрики: C#, dependecy properties, infragistics, open source, pvs-studio, static code analysis, wpf, Блог компании PVS-Studio, Компиляторы, статический анализ кода
Мы продолжаем проверять различные C#-проекты с целью демонстрации возможностей статического анализатора кода PVS-Studio. В этой статье мы рассмотрим результаты проверки WPF примеров от компании Infragistics. Сама компания Infragistics является глобальным поставщиком программного обеспечения, основанная в 1989 году. Компания сделала себе имя на разработке компонентов пользовательских интерфейсов для сторонних разработчиков на всех платформах, включая .NET.
Читать полностью »
Undefined behavior ближе, чем вы думаете
2016-02-05 в 11:06, admin, рубрики: 64-бита, 64bit, C, c++, pvs-studio, undefined behavior, x64, Блог компании PVS-Studio, неопределённое поведение, Си, метки: undefined behavior, неопределённое поведениеМногие считают, что неопределённое поведение программы возникает из-за грубых ошибок (например, запись за границы массива) или на неадекватных конструкциях (например, i = i++ + ++i). Поэтому для многих является неожиданностью, когда неопределенное поведение вдруг проявляет себя во вполне привычном и ничем не настораживающем коде. Рассмотрим один из таких примеров. Программируя на C/C++ никогда нельзя терять бдительность. Ад ближе чем кажется.
C#, PVS-Studio, ReSharper
2016-02-03 в 14:42, admin, рубрики: .net, C#, pvs-studio, ReSharper, Блог компании PVS-Studio, статический анализ кодаНам постоянно задают вопрос: «Есть ли смысл использовать анализатор кода PVS-Studio, если уже используется ReSharper?». Подразумевается, что ответом должна стать статья, где будут приведено сравнение возможностей этих инструментов в выявлении ошибок в программах. Мы знаем, что это тупиковый путь, и такая статья ничего не даст. Однако вопрос задаётся столь часто, что на него все-таки надо иметь ответ. Ответ — да, смысл есть. Сразу предупреждаю, что в статье вы не найдете ожидаемого сравнения. Но если вы потратите всего 10 минут, чтобы полностью прочитать эту статью, то мы уверены вы согласитесь с нашим ответом и видением ситуации.
PVS-Studio — статический анализатор кода, выявляющий ошибки в коде программ на языке C, C++. Недавно анализатор освоил новое для себя поприще — C#. Исторически сложилось, что среди вспомогательных инструментов для C# царствует ReSharper. Этот инструмент относится к категории productivity tool и не является в классическом понимании статическим анализатором кода. Однако ReSharper умеет выполняет множество различных проверок и раскрашивает подозрительные участки кода. Поэтому у программистов неизбежно возникает вопрос: «есть ли смысл смотреть в сторону PVS-Studio, если уже есть ReSharper?».
Читать полностью »
«Почему ещё не изобрели искусственный интеллект?» или проверка инструментария CNTK от Microsoft Research
2016-02-02 в 11:16, admin, рубрики: artificial intelligence, c++, CNTK, microsoft, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, Компиляторы, машинное обучение, Программирование, статический анализ кода Microsoft выложила в открытый доступ исходный код инструментов, которые используются в компании для ускорения разработок в области искусственного интеллекта: набор Computational Network Toolkit теперь доступен на Github. Разработчикам пришлось создать собственное решение, так как имеющиеся инструменты работали слишком медленно. Давайте же взглянем на результаты проверки этого проекта статическим анализатором кода.
Читать полностью »
Проверяем исходный код набора C#-.NET компонентов от Sony
2016-01-27 в 7:50, admin, рубрики: .net, atf, C#, dotnet, game development, open source, pvs-studio, sony, static code analysis, Блог компании PVS-Studio, статический анализ кода
Как некоторые из вас помнят — недавно мы выпустили версию анализатора, поддерживающую проверку C#-кода. С появлением возможности анализа проверки проектов, написанных на C#, открывается новый простор для творчества. Об анализе одного из таких проектов, разработанного компанией Sony Computer Entertainment (SCEI), и пойдёт речь в данной статье.
Читать полностью »
ChakraCore: проверка JavaScript-движка для Microsoft Edge
2016-01-22 в 11:21, admin, рубрики: c++, Chakra, ChakraCore, cтатический анализ кода, javascript, Microsoft Edge, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, Компиляторы, метки: cтатический анализ кодаВ декабре 2015 года на конференции JSConf US разработчики объявили, что планируют открыть исходный код ключевых компонентов JavaScript-движка Chakra, работающего в Microsoft Edge. Недавно исходный код ChackraCore под MIT лицензией опубликовали в соответствующем репозитории на GitHub. В статье я расскажу, что удалось найти интересного в проекте с помощью статического анализатора PVS-Studio.
Введение
ChakraCore это базовая составляющая Chakra, высокопроизводительный движок JavaScript, который запускает приложения Microsoft Edge и Windows, написанные на HTML/CSS/JS. ChakraCore поддерживает JIT-компиляцию на JavaScript для x86/x64/ARM, сборку мусора и широкий спектр самых последних возможностей JavaScript.
PVS-Studio — это статический анализатор для выявления ошибок в исходном коде программ, написанных на языках С, C++ и C#. Инструмент PVS-Studio предназначен для разработчиков современных приложений и интегрируется в среды Visual Studio 2010-2015.
Читать полностью »
Сопротивляйтесь добавлению в проект новых библиотек
2016-01-15 в 9:03, admin, рубрики: библиотеки, Блог компании PVS-Studio, Программирование, проектирование по, разработка, разработка приложений, разработка программного обеспечения, управление разработкойИтак, вам понадобилось реализовать в проекте функциональность X. Теоретики разработки программного обеспечения в этот момент говорят, что для этого нужно взять уже существующую библиотеку Y и использовать её для реализации необходимых вам вещей. Собственно, это классический подход в разработке программного обеспечения — повторное использование своих или чужих наработок (сторонних библиотек). И именно этим путём движется большинство программистов.
Однако, теоретики в статьях и книгах, забывают упомянуть, в какой ад превращается поддержка несколько десятков сторонних библиотек, живущих в вашем проекте, скажем по прошествии 10 лет.