Встраиваем PVS-Studio в Anjuta DevStudio (Linux)

После появления PVS-Studio под Linux, я опробовал его на своем проекте, и решил, что использование этого анализатора не помешает, в добавок ко все прочим анализаторам.

А так как астрологи объявили неделю «Запили PVS-Studio в свою IDE», то я решил описать, как я настроил Anjuta DevStudio (http://anjuta.org/). За скрипт спасибо kloppspb и его статье Встраиваем PVS-Studio в Eclipse CDT (Linux)

Сам скрипт взят из оригинальной статьи и немного изменен для проектов, собираемых с помощью autotools.

pvs-anjuta.sh
#!/bin/sh

# без аргументов скрипт вызывается как External Tool, принудительно вызываем `make clean`:
if [ -z "$1" ]; then
    make clean
fi

# вызов из билдера, проверяем цели:
if [ "$2" = "clean" ]; then
    make clean
   # здесь больше ничего делать не надо:
    exit
fi

# не clean или вызвали как External Tool - анализируем проект:
TEMPLOG=$(tempfile)

# удаляем ошмётки `strace`, которые могут появиться в некоторых случаях:
pvs-studio-analyzer trace -- make 2>&1 | sed '/strace: umovestr:/d' -
pvs-studio-analyzer analyze -o "$TEMPLOG"

# удаляем непонятную строку, которая у меня появляется в выводе конвертера:
RC=$(plog-converter -t errorfile "$TEMPLOG" | sed '/The documentation for all/d' -)
rm -f "$TEMPLOG"
echo "$RC"


Далее открываем проект, который хотим проверять, и переходим в Настройки. Далее General — вкладка «Installed Plugins», и включаем плагин «Инструменты» (Tools).
Anjuta Preferences
68482ad18f46437c9985f183cb7615b9.png

Переходим в конец списка настроек к пункту «Tools» и создаем новый инструмент «PVS-Studio Check»
Tools
15e3498af45442488c4d001fdee2f577.png

И настраиваем инструмент как показано на рисунке
Tool Editor
7efb09dd14394db3bb12a457a6124ead.png

В итоге, запустив проверку мере меню Сервис, пункт PVS-Studio Check, в стандартном окне сообщений мы сможем получить ошибки и предупреждения анализатора, а двойным щелчком мыши перейти к нужной строке.
Пример
f1292777f3fc470d974f9a2dfa255d88.png

Комментарии (2)

  • 2 декабря 2016 в 15:02

    0

    Спасибо.
    RC=$(plog-converter -t errorfile »$TEMPLOG» | sed '/The documentation for all/d' -)

    Сейчас утилита пишет отчёт в stdout, а с параметром '-e' можно выводить в stderr. Для QtCreator это очень важно. Тут нет разницы?
    • 2 декабря 2016 в 15:07 (комментарий был изменён)

      0

      Так для QtCreator вроде не так встраивать надо, по вашей же инструкции. Или речь о чём-то другом?

© Habrahabr.ru