Статья
Версия для печати
Обсудить на форуме
Инструментарии всех стран объединяйтесь.


В этой статье я систематизировал имеющуюся у меня информацию о различных инструментариях для разработчика. Здесь намеренно не приводится информация о средах программирования, а также о таких важных, а потому заслуживающих гораздо более пристального внимания, вещах, как средства управления исходным кодом и case средства. Инструментарий, который описывается ниже, не сможет заменить среды разработки, однако позволит существенно расширить ваши возможности по анализу исходных кодов, обнаружению различных ошибок, утечек памяти, а также поможет при анализе работы вашего приложения на предмет используемых системных ресурсов, в итоге ваш продукт будет гораздо более качественным.
На первом месте, на мой взгляд, следует рассмотреть такой мощный набор средств для разработчика как DevPartnerStudio от компании Compuware Corporation.
DevPartnerStudio может быть легко интегрирована в MS Visual Basic, MS Visual C++ и MS Visual Studio .NET.
Вот основные компонентны DevPartnerStudio:
1) Error detection using BoundsChecker technology
Это, многим известный, BoundChecker, который позволяет обнаруживать утечки памяти, ресурсов и выявлять ошибки при вызове API функций ( к примеру, неправильно переданные параметры), а также указывает на потенциальные ошибки, например, память выделена в одной dll а освобождается в другой.

2) Code coverage analysis.
Данная утилита позволяет узнать общую информацию о вашей программе, к примеру, сколько процентов (строк) вашего кода было выполнено в ходе работы, а также сколько раз вызывалась та или иная функция.

3) Performance analysis
Позволяет проводить анализ производительности программы. В нём можно посмотреть на графике, сколько по времени или в процентном отношении занимало выполнение функции, сохранить результат и после внесения оптимизации в свой код, сравнить показатели производительности с предыдущей сессией.


Рис.1 Performance Analysis


Рис.2 Performance Analysis. Compare Sessions

Для того, чтобы поработать с тем или иным инструментом (или их комбинацией) из DevPartnerStudio вам придётся перекомпилировать ваш проект с соответствующими настройками. Обычно это делается простым выбором соответсвующего пункта меню ( меню DevPartnerStudio интегрируется в Visual Studio ), после этого запускается ваша программа и окно DevPartnerStudio - рис. 1

Другой очень полезный продукт это MuTek BugTrapper от компании MuTek Solutions Ltd. Он позволит вам проанализировать какие системные (и не только), функции вызываются из вашей программы, какие в них передаются параметры и что возвращают эти функции. Эта информация будет предаставлена вам в режиме реального времени и может быть сохранена в файле. Фактически BugTrapper является удобным трассировщиком. Для работы с ним необходим PDB файл вашей программы. Если у вас установлены символы для системных библиотек, то BugTrapper не всегда корректно их разбирает и, возможно, у вас появится желание, к примеру, изменить название каталога с Symbols, чтобы он их не нашел, тогда BugTrapper просто отобразит все функции, которые экспортируются данной библиотекой.


Рис.3 MuTek BugTrapper

IncrediBuild - продукт, который очень сильно облегчает жизнь разработчикам, участвующим в больших проектах. Когда  полная сборка проекта занимает больше часа, а оставлять таску на ночь по каким-то причинам не хочется, , к примеру у меня она (таска) имеет ужасную привычку обламываться ночью из-за какого-нибудь недоразумения ;-), то на помощь вам придёт эта программка. Она занимается распределением процесса сборки проекта (компиляции и линковки ) по различным компьютерам, что существенно ускоряет этот процесс.

WinDbg - скорее всего вы и так уже знаете про этот отладчик от Microsoft, на мой взгляд, он достаточно удобен, к тому же его можно просто скопировать на компьютер тестера и спокойно заняться отладкой. В нём есть замечательная возможность, для более искушенного пользователя, это добавлять свои библиотеки функций для отладки.

CrashFinder - эта утилита облегчает выявление места ошибки, если у вас есть значение регистра команд EIP и адрес загрузки библиотеки, в которой произошла ошибка. Вы указываете бибиотеку, указываете адрес её загрузки, а потом в поиске указываете EIP. Используя отладочную информацию, эта утилита покажет вам номер строки и название функции, в которой у вас произошла ошибка. Её исходники вы можете скачать с http://www.wintellect.com/about/instructors/robbins/code.aspx

TCPViewPro - утилита от компании Winternals (www.winternals.com) позволяет осуществлять мониторинг всех процессов работающих с сетью через TCP, она показывает какие порты открыты, а также показывает сколько было отправлено или получено данных по каждому из них.

COMslicer - продукт от компании SENS software LLC (www.COMslicer.com) позволяет выбрать COM объект для которого будет выполняться трассировка, и вы в режиме реального времени сможете увидеть все вызовы функций  этого объекта.

Набор утилит от компании SysInternals (www.sysinternals.com) может намного облегчить процесс отладки вашей программы и анализ используемых системных ресурсов.
FileMon  - показывает в реальном времени с какими файлами работает тот или иной процесс, есть фильтр на процессы, а также на типы операций с файлами ( чтение или запись ).
HandleEx - отображает список процессов в системе и предоставляет возможность просмотреть какие хендлы задействованы этим процессом.
Process Explorer - даёт подробную информацию о запущенных процессах.
PortMon - позволяет осуществлять мониторинг параллельного и последовательного портов.
RegMon - в реальном времени показывает всю работу с реестром.
Это только некоторые из утилит, которые предоставляет эта компания, более подробно прочитать про них вы можете на сайте.
На этом я заканчиваю свой обзор различных инструментов, отлаживайтесь на здоровье ;-) .


Автор: Kir
Версия для печати
Обсудить на форуме