<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF87-88%3AValgrind</id>
		<title>LXF87-88:Valgrind - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF87-88%3AValgrind"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF87-88:Valgrind&amp;action=history"/>
		<updated>2026-05-13T02:08:19Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF87-88:Valgrind&amp;diff=12835&amp;oldid=prev</id>
		<title>Ewgen: добавлены категории</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF87-88:Valgrind&amp;diff=12835&amp;oldid=prev"/>
				<updated>2011-10-26T18:50:00Z</updated>
		
		<summary type="html">&lt;p&gt;добавлены категории&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 18:50, 26 октября 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:Обзоры]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=Valgrind 3.2.1=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=Valgrind 3.2.1=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 79:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 77:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* '''Библиотечные профили''' Можно отфильтровывать лишние ошибки с помощью загружаемых профилей.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* '''Библиотечные профили''' Можно отфильтровывать лишние ошибки с помощью загружаемых профилей.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:Обзоры]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:Valgrind]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:Грэм Моррисон]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ewgen</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF87-88:Valgrind&amp;diff=6008&amp;oldid=prev</id>
		<title>Crazy Rebel: викификация, оформление</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF87-88:Valgrind&amp;diff=6008&amp;oldid=prev"/>
				<updated>2008-12-15T07:26:53Z</updated>
		
		<summary type="html">&lt;p&gt;викификация, оформление&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Категория:Обзоры]]&lt;br /&gt;
&lt;br /&gt;
=Valgrind 3.2.1=&lt;br /&gt;
&lt;br /&gt;
{{Сравнение&lt;br /&gt;
|кратко=Запускает вашу программу в виртуальной машине, которая отлавливает ошибки работы с памятью и может составить профиль производительности.&lt;br /&gt;
|также=''UndoDB''&lt;br /&gt;
|изображение=LXF88_Valgrind1.jpg&lt;br /&gt;
|подпись=По умолчанию результат выводится в файл. GUI вроде ''Valkyrie'' очень облегчает работу.&lt;br /&gt;
|разработчик=Julian Seward и Со&lt;br /&gt;
|сайт=http://valgrind.org&lt;br /&gt;
|цена=Бесплатно под GPL&lt;br /&gt;
|параметр1=Функциональность&lt;br /&gt;
|оценка1=9&lt;br /&gt;
|параметр2=Производительность&lt;br /&gt;
|оценка2=7&lt;br /&gt;
|параметр3=Простота использования&lt;br /&gt;
|оценка3=6&lt;br /&gt;
|параметр4=Документация&lt;br /&gt;
|оценка4=4&lt;br /&gt;
|итог=Не бойтесь его сложности. ''Valgrind'' – фундаментальный комплект отладочных инструментов.&lt;br /&gt;
|рейтинг=8&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
: '''Грэм Моррисон''' спустился в недра отладки, а путь ему освещал ''Valgrind'', всевидящий ловец ошибок.&lt;br /&gt;
&lt;br /&gt;
За четыре года, прошедшие со дня его выхода в свет, ''Valgrind'' стал неотъемлемой частью процесса программирования на ''C/C++''. Этот вклад был отмечен премией Google–O’Reilly Open Source Award&lt;br /&gt;
на Open Source Conference (OSCon) 2006 года,&lt;br /&gt;
а ''Firefox, OpenOffice.org, Opera, KDE, Gnome''&lt;br /&gt;
и ''Unreal Tournament'' имели бы куда больше&lt;br /&gt;
проколов, если бы не ''Valgrind''. И уж конечно, все они были бы медлительнее – кроме, пожалуй, ''OpenOffice.org'' (куда уж еще-то?).&lt;br /&gt;
&lt;br /&gt;
У ''Valgrind'' нетипичный подход к отладке:&lt;br /&gt;
он встраивает вашу программу в собственную виртуальную машину и может отследить любую команду и выделение памяти, контролируя каждый регистр и байт. В результате&lt;br /&gt;
возникают две проблемы. Во-первых,&lt;br /&gt;
вы привязаны к интерпретации процессора&lt;br /&gt;
''Valgrind''’ом, и если ваша программа полагается на специфическую команду процессора,&lt;br /&gt;
''Valgrind'' обязан ее поддерживать. К счастью,&lt;br /&gt;
отладчик постоянно совершенствует свой&lt;br /&gt;
арсенал, и к новейшей версии ''Valgrind'' добавлены 64-битные команды AMD и поддержка&lt;br /&gt;
почти всех команд SSE3, имеющихся в новейших Pentium 4 и Athlon. Трудности могут быть только у тех, кто компилирует программное обеспечение на ультрасовременных процессорах.&lt;br /&gt;
&lt;br /&gt;
Вторая проблема – ''Valgrind'' тормозит.&lt;br /&gt;
С учетом объема работы по слежению за каждым действием вашей программы, это неизбежно, и все же неповоротливость отладчика&lt;br /&gt;
шокирует. Старт ''Konqueror'' в ''KDE'' на нашем&lt;br /&gt;
компьютере с CPU 3 ГГц занял 1,5 минуты&lt;br /&gt;
(обычно – 3 секунды), а общение с браузером&lt;br /&gt;
замедлилось раз в 20. Но при этом было отмечено увеличение скорости на 15 % по сравнению с прежней версией ''Valgrind'' (3.1.0), так что положение улучшается.&lt;br /&gt;
&lt;br /&gt;
''Valgrind'' не просто указывает на ошибки в вашем собственном ходе, он отмечает таковые во всех библиотеках, которыми&lt;br /&gt;
вы пользуетесь. Этот список может стать&lt;br /&gt;
чудовищным: за время типового сеанса генерируются сотни ошибок – даже если ваш код безупречен. Хорошо еще, что вывод можно фильтровать, используя заготовленный&lt;br /&gt;
профиль. Например, профиль ''KDE'' обходит&lt;br /&gt;
все ошибки, найденные в библиотеках ''KDE'',&lt;br /&gt;
облегчая вам поиск собственных промашек.&lt;br /&gt;
''Valgrind'' может форматировать список в виде&lt;br /&gt;
''XML'', и с ним можно работать в графической&lt;br /&gt;
оболочке при помощи отдельной программы&lt;br /&gt;
''Valkyrie'' или среды разработки ''KDevelop''.&lt;br /&gt;
&lt;br /&gt;
==Грызя гранит==&lt;br /&gt;
&lt;br /&gt;
Метод виртуальной машины, применяемый ''Valgrind'' для контроля памяти, оказался настолько плодотворным, что некоторые другие пакеты инструментов прибрали его к рукам. Среди них ''Massif'' для проверки использования памяти; ''Helgrind'' для отлова состояний гонки (race) в многопоточном коде;&lt;br /&gt;
и ''Cachegrind'', отмечающий время, затраченное процессором на каждую из функций.&lt;br /&gt;
&lt;br /&gt;
Процесс невероятно ресурсоемкий, и чтобы&lt;br /&gt;
извлечь максимум из своего софта, вам понадобится мощная машина и терпение святого. И все же работа с ''Valgrind'' неизмеримо проще,&lt;br /&gt;
чем многонедельный поиск причин периодического краха вашей программы, ведь ''Valgrind'' находит такие ошибки, которые больше никто не может отыскать. Для изучения инструментов вам понадобится только время: умения&lt;br /&gt;
нужно не больше, чем для написания собственного кода. Несмотря на сложность вывода и многочисленность программ, включенных&lt;br /&gt;
в комплект, программист средних способностей может многому научиться, пропуская свои работы через ''Valgrind'', а для продвинутого программиста это «брат по разуму». '''LXF'''&lt;br /&gt;
&lt;br /&gt;
==Свойства навскидку==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF88_Valgrind2.png|LXF88_Valgrind2.png]]&lt;br /&gt;
&lt;br /&gt;
* '''KCachegrind''' Чем больше прямоугольник функции, тем больше процессорного времени она съедает&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF88_Valgrind3.png|LXF88_Valgrind3.png]]&lt;br /&gt;
&lt;br /&gt;
* '''Библиотечные профили''' Можно отфильтровывать лишние ошибки с помощью загружаемых профилей.&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>