<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>
Блог с сайта www.viva64.com</title><link>http://www.viva64.com/ru/b/</link><description>
RSS Блог</description><language>ru-RU</language><lastBuildDate>Fri, 10 Feb 2012 17:29:25 -0000</lastBuildDate><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/viva64-blog-ru" /><feedburner:info uri="viva64-blog-ru" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Проверка проекта Quake III Arena GPL</title><link>http://feedproxy.google.com/~r/viva64-blog-ru/~3/uBULMZEiLoc/</link><description>Как известно, компания id Software &lt;a href="http://www.viva64.com/go.php?url=799" class="link-inner"&gt;выложила&lt;/a&gt; исходные коды многих своих игр. Мы уже проверяли некоторые из этих проектов. На этот раз мы решили проанализировать исходный код &lt;a href="http://www.viva64.com/go.php?url=800" class="link-inner"&gt;Quake III Arena GPL&lt;/a&gt;. Для анализа использовался статический анализатор &lt;a href="http://www.viva64.com/en/pvs-studio/" class="link-inner"&gt;PVS-Studio&lt;/a&gt; версии 4.54.&lt;img src="http://feeds.feedburner.com/~r/viva64-blog-ru/~4/uBULMZEiLoc" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.viva64.com/ru/b/0130/</guid><feedburner:origLink>http://www.viva64.com/ru/b/0130/</feedburner:origLink></item><item><title>Не зная брода, не лезь в воду. Часть вторая</title><link>http://feedproxy.google.com/~r/viva64-blog-ru/~3/ixIoUguzSOc/</link><description>В этот раз я хочу поговорить о функции printf. Все наслышаны об уязвимостях в программах, и что функции наподобие printf объявлены вне закона. Но одно дело знать, что лучше не использовать эти функции. А совсем другое - понять почему. В этой статье я опишу две классических уязвимости программ, связанных с printf. Хакером после этого вы не станете, но, возможно, по-новому взгляните на свой код. Вдруг, вы реализуете аналогичные уязвимые функции, даже не подозревая об этом.&lt;img src="http://feeds.feedburner.com/~r/viva64-blog-ru/~4/ixIoUguzSOc" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.viva64.com/ru/b/0129/</guid><feedburner:origLink>http://www.viva64.com/ru/b/0129/</feedburner:origLink></item><item><title>Как мы решали задачу реализации trial-режима в анализаторе кода PVS-Studio</title><link>http://feedproxy.google.com/~r/viva64-blog-ru/~3/xP6QrS-xZLE/</link><description>Для многих разработчиков программного обеспечения, выбор и изменение модели trial-режима является одной из самых трепетных и обсуждаемых задач. Для одних программ придумать модель проще, для других сложно. А некоторых людей не покидает вопрос: "Мы всё правильно сделали?". Актуальна задача выбора trial-модели и для нас, разработчиков PVS-Studio. Мы решили поделиться некоторыми сопутствующими мыслями и рассказать о том, какой новый вариант мы придумали. Надеемся, что наши рассуждения и некоторые мысли окажутся полезными и другим разработчикам.&lt;img src="http://feeds.feedburner.com/~r/viva64-blog-ru/~4/xP6QrS-xZLE" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.viva64.com/ru/b/0128/</guid><feedburner:origLink>http://www.viva64.com/ru/b/0128/</feedburner:origLink></item><item><title>Не зная брода, не лезь в воду. Часть первая</title><link>http://feedproxy.google.com/~r/viva64-blog-ru/~3/chwUxVc5VOg/</link><description>Захотелось написать несколько небольших заметок о том, как программисты на Си/Си++ играют с огнём, не подозревая об этом. Первая заметка будет про попытки явно вызвать конструктор.&lt;img src="http://feeds.feedburner.com/~r/viva64-blog-ru/~4/chwUxVc5VOg" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.viva64.com/ru/b/0127/</guid><feedburner:origLink>http://www.viva64.com/ru/b/0127/</feedburner:origLink></item><item><title>Советы по повышению скорости работы PVS-Studio</title><link>http://feedproxy.google.com/~r/viva64-blog-ru/~3/qRI8zGBQFvc/</link><description>&lt;span class=" span-b span-i"&gt;Эта запись устарела. Читайте "&lt;a href="http://www.viva64.com/ru/d/0213/" class="link-inner"&gt;&lt;span class=" span-b span-i"&gt;Советы по повышению скорости работы PVS-Studio&lt;/span&gt;&lt;/a&gt;" в документации.&lt;/span&gt;.&lt;img src="http://feeds.feedburner.com/~r/viva64-blog-ru/~4/qRI8zGBQFvc" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.viva64.com/ru/b/0126/</guid><feedburner:origLink>http://www.viva64.com/ru/b/0126/</feedburner:origLink></item><item><title>О пользе автоматической фильтрации одинаковых сообщений</title><link>http://feedproxy.google.com/~r/viva64-blog-ru/~3/-koXC9K11Ms/</link><description>С самого начала в нашем анализаторе PVS-Studio отсеивались дубликаты сообщений. Например, если диагностическое сообщение выдается на код в .h-файле, который включается в несколько .cpp-файлов, то у нас оно будет выдано только один раз. Ряд других анализаторов этого не делают и при проверке .cpp-файлов каждый раз выводят предупреждения на одни и те же стоки в .h-файлах. В результате получается, что наш анализатор выдает меньшее количество сообщений по сравнению с ними. Но у нас все никак не было повода оценить, насколько это полезно. Теперь такой повод появился, результаты впечатляют.&lt;img src="http://feeds.feedburner.com/~r/viva64-blog-ru/~4/-koXC9K11Ms" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.viva64.com/ru/b/0125/</guid><feedburner:origLink>http://www.viva64.com/ru/b/0125/</feedburner:origLink></item><item><title>"Проверьте еще вот этот проект..."</title><link>http://feedproxy.google.com/~r/viva64-blog-ru/~3/RlDUkgunAgc/</link><description>Мы считаем, что лучший способ продвижения нашего статического анализатора кода PVS-Studio – это проверка с его помощью известных открытых проектов (вроде &lt;a href="http://www.viva64.com/ru/a/0074/" class="link-inner"&gt;Chromium&lt;/a&gt;, &lt;a href="http://www.viva64.com/ru/b/0108/" class="link-inner"&gt;Clang&lt;/a&gt;, &lt;a href="http://www.viva64.com/ru/b/0082/" class="link-inner"&gt;WinMerge&lt;/a&gt; и многих-многих &lt;a href="http://www.viva64.com/ru/a/0077/" class="link-inner"&gt;других&lt;/a&gt;) и написание статей по результатам проверки. Это не простая задача, так как, к сожалению, PVS-Studio – всего лишь инструмент, а не чудо-программа, которая сама ищет все ошибки. Часто нам пишут люди с просьбой проверить тот или иной проект и написать об этом статью.&lt;img src="http://feeds.feedburner.com/~r/viva64-blog-ru/~4/RlDUkgunAgc" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.viva64.com/ru/b/0124/</guid><feedburner:origLink>http://www.viva64.com/ru/b/0124/</feedburner:origLink></item><item><title>Диалог Windows Error Reporting</title><link>http://feedproxy.google.com/~r/viva64-blog-ru/~3/PQSO2RUawW0/</link><description>Как и для любой Windows native программы, при работе анализатора PVS-Studio (а именно процесса PVS-Studio.exe) существует вероятность возникновения программно необрабатываемого исключения, например при переполнении стека вызовов. Операционные системы семейства Windows, начиная с версии Windows Vista, при возникновении необработанного исключения в программе генерируют специальный диалог аварийного завершения работы, предлагающий закрыть или отладить такую программу.&lt;img src="http://feeds.feedburner.com/~r/viva64-blog-ru/~4/PQSO2RUawW0" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.viva64.com/ru/b/0123/</guid><feedburner:origLink>http://www.viva64.com/ru/b/0123/</feedburner:origLink></item><item><title>О нашей библиотеке VivaCore</title><link>http://feedproxy.google.com/~r/viva64-blog-ru/~3/t90aOd4WKBQ/</link><description>Те, кто интересуется технологией анализа кода, наверняка слышали о нашей библиотеке &lt;a href="http://www.viva64.com/ru/vivacore-library/" class="link-inner"&gt;VivaCore&lt;/a&gt;. Именно на ее основе построен наш же статический анализатор &lt;a href="http://www.viva64.com/ru/pvs-studio/" class="link-inner"&gt;PVS-Studio&lt;/a&gt;. Раньше библиотеку можно было скачать с нашего сайта, однако недавно мы ее убрали оттуда и больше ее не распространяем.&lt;img src="http://feeds.feedburner.com/~r/viva64-blog-ru/~4/t90aOd4WKBQ" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.viva64.com/ru/b/0122/</guid><feedburner:origLink>http://www.viva64.com/ru/b/0122/</feedburner:origLink></item><item><title>Что поражает меня при разработке статического анализатора кода</title><link>http://feedproxy.google.com/~r/viva64-blog-ru/~3/lNfSlEV2u58/</link><description>При разработке любого инструмента для программистов, будь то компилятор, статический анализатор или что-то еще естественно используются тестовые проекты, на которых этот инструмент постоянно гоняется. Например, при разработке статического анализатора мы прогоняем его на базе из 70 реальных проектах. Это позволяет быть уверенным, что все в порядке и ничего не отломалось. Кроме того, когда мы разрабатываем новые правила диагностики ошибок, после прогона мы видим, в каких фрагментах кода выявлены новые ошибки. Все логично и очевидно. Так почему же такой заголовок?.&lt;img src="http://feeds.feedburner.com/~r/viva64-blog-ru/~4/lNfSlEV2u58" height="1" width="1"/&gt;</description><guid isPermaLink="false">http://www.viva64.com/ru/b/0121/</guid><feedburner:origLink>http://www.viva64.com/ru/b/0121/</feedburner:origLink></item></channel></rss>

