Перевод Valgrind — Gnome Live: Как использовать valgrind с приложениями GNOME
Вернуться к Оглавлению
|
||
Автор перевода: Andrey Rjavskov(Rzhavskov) as rjaan <rjaan@yandex.ru> Оригинал статьи можно найти на по этой URL-ссылке, aвтором которой является Chris Kuehl. Valgrind является утилитой программиста, которая позволяет отслеживать ошибки, связанные с памятью, в программах на C/C++. Я избавлю Вас от знакомства с ним, информацию о котором Вы сможете найти на этой WEB-странице. Эта страница включает некоторые подсказки как профессионально использовать valgrind в программах на gtk/gnome. Не стеняйтесь добавлять ваши собственные советы или более расширенную информацию к уже существующей. Memcheck является основной утилитой valgrind, позволяющей обнаруживать утечку памяти и другие ошибки в управлении с нею. Для запуска gnome-программы под memcheck выполните: В переменных окружения G_SLICE и G_DEBUG не забудьте выключить оптимизацию памяти в библиотеках glib, чтобы они не сбивали с толку valgrind. Если отлаживаемая вами программа используетдинамически загружаемых модулей вместе с Gmodule(например, она использует Gmodule систему плагинов ) вы должны использовать G_DEBUG=gc-friendly,resident-modules для того, чтобы удостоверится, что модули не будут выгружены и valgrind не сможет получить имена функций, при записи своего лога: Эта хорошая идея для сборки ORBit2 с опцией —enable-purify при выполнении GNOME-прилождений поскольку обеспечивает полную инициализацию всех структур данных, что позволяет избежать большинства предупреждений о неинициализированных переменных в CORBA-коде. После выполнения программы вы можете проинспектировать лог в файле vgdump. Лог содержит список проблем связанных с ипспользованием памяти, а так же в частности утечек памяти. СОВЕТ ПЕРЕВОДЧИКА: можно запускать одновременно в нескольких gnome-terminal с просмотром лог-файла vgdump процесса выполнение valgrind отладки your-program. Утечки памяти маркируются тремя способами: definitely lost(определенно утраченные),possibly lost(возможно утраченные) и still reachable(по-прежнему доступные): для начала сконцентрируемся на одной их них, а именно definitely lost, которая непосредственно является частью утечки памяти. Для каждой такой утечки valgrind обеспечивает отслеживание, которое позволит вам явно выявить источник проблемы утечки памяти, в частности, если ваша программа была скомпилирована с отладочными символами, valgrind будет указывать точную строку и файл, где она случилась. Помните: Если ваш бинарник является в реальности libtool-сгенерированной временной оберткой, а командная строка выше будет выполнять valgrind в вашей командной оболочке, которая возможно не будет знать, что вы хотите. Взамен используйте: | ||
| ||
This document is available under the terms of the GNU Free Documentation License. |