To get a trial key
fill out the form below
Team License (a basic version)
Enterprise License (an extended version)
* By clicking this button you agree to our Privacy Policy statement

Request our prices
New License
License Renewal
--Select currency--
USD
EUR
RUB
* By clicking this button you agree to our Privacy Policy statement

Free PVS-Studio license for Microsoft MVP specialists
* By clicking this button you agree to our Privacy Policy statement

To get the licence for your open-source project, please fill out this form
* By clicking this button you agree to our Privacy Policy statement

I am interested to try it on the platforms:
* By clicking this button you agree to our Privacy Policy statement

Message submitted.

Your message has been sent. We will email you at


If you haven't received our response, please do the following:
check your Spam/Junk folder and click the "Not Spam" button for our message.
This way, you won't miss messages from our team in the future.

>
>
Integrating PVS-Studio into Eclipse CDT…

Integrating PVS-Studio into Eclipse CDT (Linux)

Dec 06 2016

The news about the possibility of using PVS-Studio to check source files for free finally prompted me to integrate the analysis of source code into Eclipse CDT. There are guides on integrating with CLion/QtCreator/etc., but nothing for us, the purple :) Tools used for my experiments: Eclipse IDE for C/C++ Developers, Version: Neon.1a Release (4.6.1), Build id: 20161007-1200, and PVS-Studio 6.11.20138.1. Here's what I've got.

This article was originally published in Russian on habrahabr.ru. The original and translated versions are posted on our website with the permission of the author.

First, we need to wrap the analyzer call in a script (we'll talk about it later) that we'll be calling as an external utility. Specify the working directory in the configuration:

0458_Eclipse_CDT/image1.png

Figure 1 - External Tools Configurations / Main

And tick the "Allocate console" option:

0458_Eclipse_CDT/image3.png

Figure 2 - External Tools Configurations / Main

The drawback of this method is that the output will not be parsed by the Eclipse parser, so you will be able to view it only in the console:

0458_Eclipse_CDT/image5.png

Figure 3 - Run as External Tool

If this method doesn't suit you, try integrating the analysis process into an external building utility instead. This method doesn't work with every project, but if it suits you, go to the project properties and set up the External Builder parameters for the current configuration:

  • Choose External builder for Build type
  • Untick "Use default build command"
  • Specify our script in the "Build command" field
  • Tick "Generate Makefiles automatically"
0458_Eclipse_CDT/image7.png

Figure 4 - C/C++ Build

Eclipse will add the "-k" switch automatically. Thus, our script will be called with the switches "-k all" when building the project, and with the switches "-k clean" when cleaning it.

As a result, we get automatic project analysis during the building process plus an output parsed by Eclipse, which enables us to navigate the source files in the "Problems" window:

0458_Eclipse_CDT/image9.png

Figure 5 - Run as Builder

And here's the script itself:

#!/bin/sh

# without arguments, the script is called as External Tool,
# and we need to call 'make clean' forcedly:
if [ -z "$1" ]; then
    make -f makefile clean
fi

# calling from the builder, checking the targets:
if [ "$2" = "clean" ]; then
    make -f makefile clean
   # we're done here:
    exit
fi

# no 'clean' or the script is called as External Tool - 
# start analysis:
TEMPLOG=$(tempfile)

# cleaning up leftovers of 'strace' that may appear in certain cases: 
pvs-studio-analyzer trace -- make -f makefile all 2>&1 \
    | sed '/strace: umovestr:/d' -
pvs-studio-analyzer analyze -o "$TEMPLOG"

# removing the obscure line that I get in the converter's output:
RC=$(plog-converter -t errorfile "$TEMPLOG" \
    | sed '/The documentation for all/d' -)
rm -f "$TEMPLOG"
echo "$RC"

That's all for now. I haven't tested it on real projects yet and may well run into some issues when it comes to that, but the general concept is clear.

Popular related articles
What's new in PVS-Studio in 2021?

Date: Dec 31 2021

Author: Maxim Stefanov, Oleg Lisiy, Sergey Vasiliev

2021 is coming to an end, which means it's time to sum up the year! Today we'll tell you about the new features we added to PVS-Studio in the past year. Buckle up and let's go!
VSCode: how to view reports of static analyzers that support SARIF

Date: Aug 09 2021

Author: Nikolay Mironov

People increasingly start optimizing the process of finding code errors using static analyzers. Nowadays, we can choose from a variety of products to view analysis results. This post covers the ways …
PVS-Studio new features for notifying developers about errors found

Date: May 18 2021

Author: Maxim Stefanov

PVS-Studio user support often receives clients' suggestions on product improvement. We are happy to implement many of them. Recently one of the users suggested refining the automatic notification uti…
How to speed up building and analyzing of your project with IncrediBuild?

Date: May 17 2021

Author: Maxim Zvyagintsev

"How much longer are you going to build it?" - a phrase that every developer has uttered at least once in the middle of the night. Yes, a build can be long and there is no escaping it. One does not s…
Perl script instead of Blame-notifier on Linux OS

Date: Apr 08 2021

Author: Irina Polynkina

As you know, our clients are developers. Sometimes developers can surprise you. For example, one of our users wrote his own script. It allows configuring emails about errors found by PVS-Studio. The …

Comments (0)

Next comments
This website uses cookies and other technology to provide you a more personalized experience. By continuing the view of our web-pages you accept the terms of using these files. If you don't want your personal data to be processed, please, leave this site.
Learn More →
Accept