<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Личный опыт разработки ПО &#187; Инструменты</title>
	<atom:link href="http://www.devexp.ru/category/instrumenty/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devexp.ru</link>
	<description>Сборник рецептов</description>
	<lastBuildDate>Tue, 15 Nov 2011 18:38:30 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Использование Cppcheck для статического анализа кода</title>
		<link>http://www.devexp.ru/2011/01/ispolzovanie-cppcheck-dlya-staticheskogo-analiza-koda/</link>
		<comments>http://www.devexp.ru/2011/01/ispolzovanie-cppcheck-dlya-staticheskogo-analiza-koda/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 18:29:11 +0000</pubDate>
		<dc:creator>Максим Тремпольцев</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Cppcheck]]></category>

		<guid isPermaLink="false">http://www.devexp.ru/2011/01/ispolzovanie-cppcheck-dlya-staticheskogo-analiza-koda/</guid>
		<description><![CDATA[Что такое статический анализатор кода? Это программа, которая проверяет исходный код программы и пытается найти в нем ошибки. Иногда это у нее ловко получается. Диагностируются выходы за границы массивов, утечки памяти, использование неинициализированных переменных и прочие неприятные вещи. Часто минутный прогон программы позволяет сэкономить час работы в отладчике в поисках бага.
Цена вопроса
Есть программы которые стоят [...]]]></description>
			<content:encoded><![CDATA[<p>Что такое статический анализатор кода? Это программа, которая проверяет исходный код программы и пытается найти в нем ошибки. Иногда это у нее ловко получается. Диагностируются выходы за границы массивов, утечки памяти, использование неинициализированных переменных и прочие неприятные вещи. Часто минутный прогон программы позволяет сэкономить час работы в отладчике в поисках бага.</p>
<h2>Цена вопроса</h2>
<p>Есть программы которые стоят немалых денег (<a href="http://www.coverity.com/html/prevent-for-c-c++.html">Coverity Prevent for C/C++</a>, <a href="http://www.klocwork.com/">Klocwork</a>), а есть абсолютно бесплатные (<a href="http://cppcheck.sourceforge.net/">Cppcheck</a>).</p>
<p>Платные я не тестировал, но судя по <a href="http://easy-coding.blogspot.com/2009/02/blog-post_23.html">статье</a>, Cppcheck им нисколько не уступает. Так на тесте приведенном в указанной статье она находит все ошибки. Вот результат работы:</p>
<pre>Checking check.cpp...
[check.cpp:11]: (error) Array 'c[10]' index 10 out of bounds
[check.cpp:5]: (error) Memory leak: __p
[check.cpp:17]: (error) Memory leak: a
[check.cpp:14]: (error) Mismatching allocation and deallocation: A::__p
[check.cpp:8]: (error) Null pointer dereference </pre>
<p>&#160;</p>
<p>Кроме затрат материальных, у инструментов есть определенный уровень вхождения, который некоторых может остановить. Я человек ленивый, поэтому мне особенно приятно, что у данного инструмента этот порог очень низкий.</p>
<p>Есть версия программы с графическим интерфейсом, где единственное усилие которое нужно сделать – выбрать пункт меню <strong>Check-&gt;Files</strong> для проверки одного файла, или <strong>Check-&gt;Directory </strong>для проверки всей директории, после чего просмотреть результаты работы.</p>
<p>Также есть консольная версия, на вход которой также достаточно подать&#160; имена проверяемых файлов.</p>
<h2>Интеграция в систему сборки</h2>
<p>Уже упомянутую консольную версию программы легко добавить в скрипт сборки проекта, чтобы автоматически проводить проверку. При этом Cppcheck может в случае нахождения ошибок вернуть определенный код. Используйте для этого ключ <strong>&#8211;error-exitcode=код_возврата</strong>.</p>
<h2>Вывод</h2>
<p>Cppcheck отличный инструмент, очень простой в использовании, бесплатный и довольно эффективный. Крайне рекомендую к использованию. Есть версии как для Windows, так и для Linux.</p>
<p>Домашняя страница проекта: <a href="http://cppcheck.sourceforge.net/">http://cppcheck.sourceforge.net/</a></p>
<img src="http://www.devexp.ru/?ak_action=api_record_view&id=74&type=feed" alt="" /><hr noshade style="margin:0;height:1px" />
<small>
<p>Copyright &copy; 2011, <a href="http://www.devexp.ru">Личный опыт разработки ПО</a>. 
Все права защищены. |
<a href="http://www.devexp.ru/2011/01/ispolzovanie-cppcheck-dlya-staticheskogo-analiza-koda/">Постоянная ссылка</a> |
<a href="http://www.devexp.ru/2011/01/ispolzovanie-cppcheck-dlya-staticheskogo-analiza-koda/#comments">Один комментарий</a>
<br/>
Хотите узнать больше? Посмотреть все записи в категории <a href="http://www.devexp.ru/category/c/" title="Просмотреть все записи в C++" rel="category tag">C++</a>,  <a href="http://www.devexp.ru/category/instrumenty/" title="Просмотреть все записи в Инструменты" rel="category tag">Инструменты</a>.</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.devexp.ru/2011/01/ispolzovanie-cppcheck-dlya-staticheskogo-analiza-koda/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Публикация кода online</title>
		<link>http://www.devexp.ru/2009/12/publikaciya-koda-online/</link>
		<comments>http://www.devexp.ru/2009/12/publikaciya-koda-online/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 17:33:26 +0000</pubDate>
		<dc:creator>Максим Тремпольцев</dc:creator>
				<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Интернет]]></category>

		<guid isPermaLink="false">http://www.devexp.ru/2009/12/publikaciya-koda-online/</guid>
		<description><![CDATA[Иногда бывает нужно проверить немного кода, а компилятора под рукой нет. Или возникает необходимость обсудить что-либо с человеком доступным в данный момент только через сеть. В этом случае здорово выручит замечательный сайт Codepad. Без регистрации, быстро и удобно можно скомпилировать программу, посмотреть вывод, получить короткую ссылку которой можно поделиться с людьми и даже устроить небольшое [...]]]></description>
			<content:encoded><![CDATA[<p>Иногда бывает нужно проверить немного кода, а компилятора под рукой нет. Или возникает необходимость обсудить что-либо с человеком доступным в данный момент только через сеть. В этом случае здорово выручит замечательный сайт <a href="http://codepad.org/" target="_blank">Codepad</a>. Без регистрации, быстро и удобно можно скомпилировать программу, посмотреть вывод, получить короткую ссылку которой можно поделиться с людьми и даже устроить небольшое обсуждение (вот для этого правда придется зарегистрироваться).</p>
<p>Поддерживаются языки: <strong>C</strong>, <strong>C++</strong>, <strong>D</strong>, <strong>Haskell</strong>, <strong>Lua</strong>, <strong>OCaml</strong>, <strong>PHP</strong>, <strong>Perl</strong>, <strong>Python</strong>, <strong>Ruby</strong>, <strong>Scheme</strong>, <strong>Tcl</strong>.</p>
<p>Немного погонял на C++ — ключевые слова подсвечиваются, сообщения об ошибках адекватные, можно даже использовать Boost! Резюмирую — отличный ресурс!</p>
<p>Повторяю ссылку: <a href="http://codepad.org/" target="_blank">codepad.org</a></p>
<img src="http://www.devexp.ru/?ak_action=api_record_view&id=37&type=feed" alt="" /><hr noshade style="margin:0;height:1px" />
<small>
<p>Copyright &copy; 2009, <a href="http://www.devexp.ru">Личный опыт разработки ПО</a>. 
Все права защищены. |
<a href="http://www.devexp.ru/2009/12/publikaciya-koda-online/">Постоянная ссылка</a> |
<a href="http://www.devexp.ru/2009/12/publikaciya-koda-online/#comments">2 комментариев</a>
<br/>
Хотите узнать больше? Посмотреть все записи в категории <a href="http://www.devexp.ru/category/instrumenty/" title="Просмотреть все записи в Инструменты" rel="category tag">Инструменты</a>,  <a href="http://www.devexp.ru/category/internet/" title="Просмотреть все записи в Интернет" rel="category tag">Интернет</a>.</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.devexp.ru/2009/12/publikaciya-koda-online/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

