Книга: Программирование для Linux. Профессиональный подход
А.2.6. Выбор средств отладки
А.2.6. Выбор средств отладки
Мы рассмотрели четыре разных, несовместимых друг с другом средства диагностирования неправильных случаев использования динамической памяти. Ни одно из средств не гарантирует нахождение всех ошибок, но это лучше, чем полное отсутствие проверок. Чтобы облегчить поиск ошибок, выделите код, в котором происходит работа с динамической памятью. Если программа пишется на C++, создайте класс, обрабатывающий все обращения к динамической памяти. При написании программы на языке С постарайтесь минимизировать число функций, в которых выделяется и освобождается память. Тестируя программу, не забывайте о том, что одновременно должно использоваться только одно средство отладки памяти, так как эти средства несовместимы.
Какое же из четырех средств выбрать? Поскольку чаще всего забывают согласовать число операций выделения и освобождения памяти, на начальных этапах разработки лучше применять утилиту mtrace
. Она доступна во всех Linux-системах и хорошо себя зарекомендовала. Пройдя данную фазу тестирования, воспользуйтесь утилитой Electric Fence для нахождения неправильных обращений к памяти. Связка двух этих утилит позволяет найти практически все ошибки, связанные с использованием динамической памяти.
- А.2.1. Программа для тестирования динамической памяти
- А.2.2. Проверка функции malloc()
- А.2.3. Поиск потерянных блоков памяти с помощью утилиты mtrace
- А.2.4. Библиотека ccmalloc
- А.2.5. Библиотека Electric Fence
- А.2.6. Выбор средств отладки
- А.2.7. Исходный текст программы, работающей с динамической памятью
- А.2. Поиск ошибок в динамической памяти
- А.2.1. Программа для тестирования динамической памяти
- Средства отладки
- А.2.5. Библиотека Electric Fence
- Выбор стратегии ценообразования
- Выбор аппаратного обеспечения для InterBase
- Рекомендации по выбору архитектуры: Classic или SuperServer?
- Ограничение результатов выборки FIRST
- Значимость: покупка как средство достижения цели
- Средства мониторинга
- Выбор спутника жизни
- Глава 24 Расширенные средства маршрутизации