LXF87-88:Valgrind
(викификация, оформление) |
Ewgen (обсуждение | вклад) м (добавлены категории) |
||
Строка 1: | Строка 1: | ||
− | |||
− | |||
=Valgrind 3.2.1= | =Valgrind 3.2.1= | ||
Строка 79: | Строка 77: | ||
* '''Библиотечные профили''' Можно отфильтровывать лишние ошибки с помощью загружаемых профилей. | * '''Библиотечные профили''' Можно отфильтровывать лишние ошибки с помощью загружаемых профилей. | ||
+ | |||
+ | [[Категория:Обзоры]] | ||
+ | [[Категория:Valgrind]] | ||
+ | [[Категория:Грэм Моррисон]] |
Текущая версия на 21:50, 26 октября 2011
|
|
|
[править] Valgrind 3.2.1
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
- Грэм Моррисон спустился в недра отладки, а путь ему освещал Valgrind, всевидящий ловец ошибок.
За четыре года, прошедшие со дня его выхода в свет, Valgrind стал неотъемлемой частью процесса программирования на C/C++. Этот вклад был отмечен премией Google–O’Reilly Open Source Award на Open Source Conference (OSCon) 2006 года, а Firefox, OpenOffice.org, Opera, KDE, Gnome и Unreal Tournament имели бы куда больше проколов, если бы не Valgrind. И уж конечно, все они были бы медлительнее – кроме, пожалуй, OpenOffice.org (куда уж еще-то?).
У Valgrind нетипичный подход к отладке: он встраивает вашу программу в собственную виртуальную машину и может отследить любую команду и выделение памяти, контролируя каждый регистр и байт. В результате возникают две проблемы. Во-первых, вы привязаны к интерпретации процессора Valgrind’ом, и если ваша программа полагается на специфическую команду процессора, Valgrind обязан ее поддерживать. К счастью, отладчик постоянно совершенствует свой арсенал, и к новейшей версии Valgrind добавлены 64-битные команды AMD и поддержка почти всех команд SSE3, имеющихся в новейших Pentium 4 и Athlon. Трудности могут быть только у тех, кто компилирует программное обеспечение на ультрасовременных процессорах.
Вторая проблема – Valgrind тормозит. С учетом объема работы по слежению за каждым действием вашей программы, это неизбежно, и все же неповоротливость отладчика шокирует. Старт Konqueror в KDE на нашем компьютере с CPU 3 ГГц занял 1,5 минуты (обычно – 3 секунды), а общение с браузером замедлилось раз в 20. Но при этом было отмечено увеличение скорости на 15 % по сравнению с прежней версией Valgrind (3.1.0), так что положение улучшается.
Valgrind не просто указывает на ошибки в вашем собственном ходе, он отмечает таковые во всех библиотеках, которыми вы пользуетесь. Этот список может стать чудовищным: за время типового сеанса генерируются сотни ошибок – даже если ваш код безупречен. Хорошо еще, что вывод можно фильтровать, используя заготовленный профиль. Например, профиль KDE обходит все ошибки, найденные в библиотеках KDE, облегчая вам поиск собственных промашек. Valgrind может форматировать список в виде XML, и с ним можно работать в графической оболочке при помощи отдельной программы Valkyrie или среды разработки KDevelop.
[править] Грызя гранит
Метод виртуальной машины, применяемый Valgrind для контроля памяти, оказался настолько плодотворным, что некоторые другие пакеты инструментов прибрали его к рукам. Среди них Massif для проверки использования памяти; Helgrind для отлова состояний гонки (race) в многопоточном коде; и Cachegrind, отмечающий время, затраченное процессором на каждую из функций.
Процесс невероятно ресурсоемкий, и чтобы извлечь максимум из своего софта, вам понадобится мощная машина и терпение святого. И все же работа с Valgrind неизмеримо проще, чем многонедельный поиск причин периодического краха вашей программы, ведь Valgrind находит такие ошибки, которые больше никто не может отыскать. Для изучения инструментов вам понадобится только время: умения нужно не больше, чем для написания собственного кода. Несмотря на сложность вывода и многочисленность программ, включенных в комплект, программист средних способностей может многому научиться, пропуская свои работы через Valgrind, а для продвинутого программиста это «брат по разуму». LXF
[править] Свойства навскидку
- KCachegrind Чем больше прямоугольник функции, тем больше процессорного времени она съедает
- Библиотечные профили Можно отфильтровывать лишние ошибки с помощью загружаемых профилей.