﻿# PVS\-Studio теперь в Compiler Explorer\!

Совсем недавно произошло знаменательное событие: PVS\-Studio появился в Compiler Explorer\! Теперь вы можете быстро и легко проанализировать код на наличие ошибок прямо на сайте godbolt\.org \(Compiler Explorer\)\. Это нововведение открывает большое количество новых возможностей – от утоления любопытства по поводу способностей анализатора до возможности быстро поделиться результатом проверки с другом\. О том, как использовать эти возможности, и пойдёт речь в этой статье\. Осторожно – гифки\!

![0747_PVS-Studio_at_Compiler_Explorer_ru/image1.png](https://import.viva64.com/docx/blog/0747_PVS-Studio_at_Compiler_Explorer_ru/image1.png)

Если вам хочется сразу перейти к делу и проанализировать код здесь и сейчас, то вот вам полностью готовая к использованию [ссылка](https://godbolt.org/z/xZE9ca)\. Рекомендую добавить её себе в закладки – еще пригодится ;\)

<https://www.youtube.com/watch?v=6fvTVVO3_58&list=PLmGioT8z4uoZsce6HQTIDFar_2hdbqPD7>

Теперь давайте обо всём по порядку\. [Compiler Explorer](https://godbolt.org/) – интерактивный онлайн\-сервис для исследования компиляторов\. Здесь вы можете прямо на сайте писать код и сразу видеть, какой ассемблерный вывод сгенерирует для него тот или иной компилятор:

![](https://import.viva64.com/docx/blog/0747_PVS-Studio_at_Compiler_Explorer_ru/image2.mp4)

Помимо этого, на сайте существует еще целый набор возможностей, и сегодня мы рассмотрим возможность проведения анализа с помощью PVS\-Studio\. Для того, чтобы провести анализ, необходимо сделать следующее:

1. Зайти на сайт [godbolt\.org](https://godbolt.org/),
1. Во вкладке с выводом компилятора нажать "Add tool\.\.\.",
1. В выпадающем списке выбрать "PVS\-Studio"\.

Пример такой последовательности действий вы можете увидеть на анимации ниже:

![](https://import.viva64.com/docx/blog/0747_PVS-Studio_at_Compiler_Explorer_ru/image4.mp4)

Готово\! Теперь в появившемся окне будут автоматически выводиться все предупреждения, которые выдаются анализатором на ваш код\. Анализировать можно как собственноручно написанный код, так и исходные файлы, загруженные по отдельности\. Естественно, файлы должны быть самодостаточными и не использовать include на файлы, не входящие в стандартную библиотеку\. В противном случае файл не получится ни скомпилировать, ни проверить\.

На данный момент анализ с помощью PVS\-Studio доступен на сайте для всех версий GCC и Clang под платформы x86 и x64\. Мы планируем расширить возможности сайта и на другие поддерживаемые нами компиляторы \(например, MSVC или компиляторы для ARM\), если на это будет спрос\.

Сейчас на сайте включены только General\-диагностики уровней error, warning и note\. Мы специально не стали включать остальные режимы \(Optimization, 64\-bit, Custom и MISRA\), чтобы в выводе остались только самые важные предупреждения\. Также, в отличие от самого PVS\-Studio, Compiler Explorer пока не поддерживает языки C\# и Java – мы планируем запустить анализ кода на этих языках, как только они там появятся :\) 

Compiler Explorer имеет весьма умную систему окон, поэтому вы можете двигать их или, например, накладывать друг на друга\. Если сейчас вас не интересует вывод компилятора, его можно "спрятать"\. Вот так:

![](https://import.viva64.com/docx/blog/0747_PVS-Studio_at_Compiler_Explorer_ru/image6.mp4)

Вы можете как сразу писать код в окне Compiler Explorer, так и загружать отдельные файлы\. Для этого нужно нажать "Save/Load" и в открывшейся вкладке выбрать "File system"\. Также можно "скачать" написанный вами код на компьютер, нажав Ctrl \+ S\.

![](https://import.viva64.com/docx/blog/0747_PVS-Studio_at_Compiler_Explorer_ru/image8.mp4)

На сайте нельзя анализировать проекты целиком – можно только загружать файлы по отдельности\.

Если вам хочется увидеть вывод вашей программы, то можно открыть окно выполнения, нажав "Add new\.\.\. –\> Execution only" в окне для написания кода \(не в окне с компилятором\)\. На гифке ниже вы можете увидеть вывод лабораторной работы, взятой из нашей страницы про [бесплатное использование PVS\-Studio студентами и преподавателями](https://pvs-studio.ru/ru/order/for-students/)\.

![](https://import.viva64.com/docx/blog/0747_PVS-Studio_at_Compiler_Explorer_ru/image10.mp4)

Кстати, вы заметили, что при переходе по ссылкам на godbolt у вас открывается уже заранее вписанный код в заранее расставленных окнах? Да, вы можете генерировать постоянные ссылки, полностью сохраняющие состояние страницы в момент генерации\! Для этого вам нужно нажать на кнопку "Share" в правом верхнем углу экрана\. 

![](https://import.viva64.com/docx/blog/0747_PVS-Studio_at_Compiler_Explorer_ru/image12.mp4)

Данный способ является очень удобным для того, чтобы делиться результатами компиляции/анализа вашего кода с друзьями и коллегами\. Особенно удобно, что получающей стороне буквально ничего не нужно делать: достаточно лишь перейти по ссылке, и перед глазами сразу откроется всё необходимое\.

Мы планируем использовать эту возможность для работы с клиентами в техподдержке: зачастую использование Compiler Explorer является очень удобным для составления минимально воспроизводимых примеров, которые можно быстро взять и отправить по почте\.

Также в выпадающей вкладке "Share" есть пункт создания Embedded\-ссылки, с помощью которой можно встроить окно с Compiler Explorer на какой\-нибудь другой сайт\. 

В Compiler Explorer всегда находится актуальная версия PVS\-Studio, поэтому после каждого нашего релиза на сайте можно будет найти всё больше и больше ошибок\. Тем не менее, использование PVS\-Studio на godbolt\.org не дает полного представления о его возможностях, ведь PVS\-Studio – это не только диагностики, но и развитая инфраструктура: 

* Анализ кода на языках C, C\+\+, C\# и Java для куда большего количества платформ и компиляторов;
* Плагины для Visual Studio 2010\-2019, JetBrains Rider, IntelliJ IDEA;
* Возможность интеграции в TeamCity, Azure DevOps, Travis CI, CircleCI, GitLab CI/CD, Jenkins, SonarQube и т\.д\.
* Утилита мониторинга компиляции для проведения анализа независимо от IDE или сборочной системы;
* И многое, многое другое\.

В конце концов, только скачав анализатор вы сможете полноценно проанализировать проект, состоящий из нескольких файлов\. Поэтому самый лучший способ получить правильное представление о PVS\-Studio – [скачать](https://pvs-studio.ru/ru/pvs-studio/download/) анализатор и попробовать его на своём проекте\.

Чтобы всегда быть в курсе, следите за нашими новостями\. Также читайте наш [блог](https://pvs-studio.ru/ru/blog/posts/): там мы публикуем не только новости и статьи о поиске багов в реальных проектах, но и различные интересные моменты, связанные с C, C\+\+, C\# и Java\. 

Наши соцсети:

* Twitter \- [@pvsstudio\_rus](https://twitter.com/pvsstudio_rus)
* Вконтакте \- [Анализатор PVS\-Studio](https://vk.com/pvsstudio_rus)
* Telegram \- [PVS\-Studio rus](https://t.me/pvsstudio_rus)