Comments 14
Ну, говорить что, это «не ваш случай я бы не стал». Я абсолютно уверен, что вы и ваши коллеги с удовольствием бы потратили вот эти вот 50 часов на что-нибудь другое. Что-то, что повысило бы желание продолжать платить у вашего заказчика. Да и вам самим, наверняка, интереснее делать что-то новое, чем искать иголку в стоге сена днями напролёт.
Мы бы, конечно, потратили. Но к сожалению, мы не принимаем решений о приобретении инструментов.
Большое спасибо за заметку. Мы были приятно удивлены. Во-первых, тому, что написали про положительный опыт (обычно пишут по негативный :). Во-вторых, что удалось прожевать проект от AVR Studio, хотя мы никак к этому не адаптировали анализатор.

Кстати, эта статья демонстрирует, как не надо использовать статический анализатор. Если использовать анализ регулярно (инкрементальный анализ), то этой и возможно многих более простых ошибок просто бы не возникло. Понятно, что это не тот случай (не существует плагина для AVR Studio). Однако это намек тем, что использует Visual Studio или Embarcadero RAD Studio.

Ещё раз спасибо за статью.

Дополнительные ссылки:
  1. Статья о standalone версии. PVS-Studio теперь работает и без среды Visual Studio или C++Builder – проверяем препроцессированные файлы от чего угодно.
  2. Скачать и попробовать.
  3. Поговорить с нами о процессе приобретении и обсудить цену.

Кстати, если бы можно было запустить анализатор из командной строки и получить отчет в читаемом виде, то анализатор бы легко встраивался в процесс непрерывной интеграции и запускался при каждой сборке.

В AVR же используется слегка модифицированный avr-gcc, а для gcc вроде поддержка заявлена. Да и С — это С, нет?
Ужас в том (для нас), что все это давно поддерживается инструментом, но никто этим не пользуется.
>>Поскольку потраченные на поиск 50 часов оплачиваются заказчиком, для руководства внедрение анализатора означает прямые убытки :(((

Скорее не убытки, а недополученный по данному проекту доход. Но, конечно, если новые проекты находить сложнее чем их реализовывать, то использование инструментов, повышающих скорость разработки экономически нецелесообразно. Пока удается находить проекты, для которых скорость разработки не решающее преимущество.
Находить новые, конечно же, сложнее, чем реализовывать имеющиеся. Но это, на мой взгляд, лишь повод реализовывать их более качественно, чтоб у заказчика возникало желание продолжать сотрудничать. Но этот фактор, увы, в финансовых отчетах не отражается.
в остатке я так и не понял, как повторить конфигурацию в своем проекте. зато узнал про некий чудо-софт, который как-то связан с тратами заказчика. досада, плюс знакомые лозунги в резюме наводят на мысль о том, что «любовь к искусству анализаторам», вполне может быть продажной. %)
Что именно вы не поняли? Как в вашем проекте сказать компилятору, чтобы он остановился после препроцессора? Или как в чудо-софте заполнить целых три поля, значение которых ясно из названий этих полей (и про заполнение которых была недавно статья авторов чудо-софта)? А продажность увидеть можно везде, было бы желание.
Дружище funca, будешь работать на нас? Писать статьи за деньги? Предложение актуально!
Представьте себе, любовь бывает непродажной. Мы даже не знаем, кто этот таинственный Александр. Он давно интересуется нашим продуктом (что видно из предыдущей статьи). И мы общались с ним, но к сожалению так и не смогли убедить приобрести PVS-Studio. :)

Более того, есть ещё более таинственный поклонник. Выглядит, как замаскированные под другого человека, наши статьи. Но нет. Действительно, кто-то написал пару статей про PVS-Studio. :) Но никому не докажешь, что кто-то сам может такое просто так написать. Везде видят заговор. :)
любой процесс с определенной целью — конечен. истинная любовь — вечна. поэтому она не может иметь определенной цели.
маркетиноговые цели данного поста, даже если это всего лишь случайное совпадение, в ней прописаны практически прямым текстом. значит речь тут не об истинной любви, как минимум.
Мы даже не знаем, кто этот таинственный Александр. Он давно интересуется нашим продуктом (что видно из предыдущей статьи). И мы общались с ним, но к сожалению так и не смогли убедить приобрести PVS-Studio. :)

ну вот и вы туда же — смотрите статьи, общаетесь, продаете и публично отрицаете знакомство, ага? как вы так умудряетесь строить отношения со своими клиентами и почему стесняетесь знакомиться с ними, если основной метод, как следует из ваших предыдущих постов, это прямые продажи? :)
Вы все еще не используете assert? Тогда мы идем к вам.

void fun(error_t * perr)
{
assert(perr);
*perr = SUCCESS;

if (something)
{
*perr = SOME_ERROR;
}
}
Это тот самый assert, который разворачивается в ((void)0) в release конфигурации? Если да, то он поможет исключительно в случае, когда управление пройдет через строку с ним и непременно в отладочной конфигурации, это обычно бывает с часто вызваемым кодом или при наличии очень хорошего тестового покрытия. А статический анализ найдет такой фрагмент, даже если код с ним никогда не вызывается.

Так что assert, конечно, очень полезен, но далеко не панацея.
Only those users with full accounts are able to leave comments. Log in, please.