Есть вопрос!Function call tree and performance analysis tools

Собственно есть потребность в следующем:
1. Построении статического дерева функций программы/dll/драйвера.
2. Построении дерева вывозов функций во время программы/dll/драйвера.
3. Анализе затратов времени и ресурсов на выполнение программы/dll/драйвера.
В основном интересуют подобные программы для применения к драйверам под Windows XP. Написаны они на Си.

От себя немного по теме:
1ая потребность — самая простая, думаю попробовать консольную утилиту calltree. Надеюсь скомпилить под виндой не составит проблем) Кроме того, может кто знает, умеет ли doxygen строить подобные вещи? В его настройках что-то подобное видел, но чего-либо вменяемого получить не смог =(
directory.fsf.org/project/calltree/

2ая потребность — самая насущная… Если для пользовательских приложений, скомпиленных с помощью gcc решение нашлось легко и просто: etrace — ndevilla.free.fr/etrace/ (уже портировал под винду, пробовал на их тестовом примере — работает), то вот остается вопрос можно ли будет написать драйвер, который использует ту же уловку {__cyg_profile_func_enter()/__cyg_profile_func_exit()}, но при этом загружается одним из первых и пишет дерево в файл или в com-порт, чтобы через связку vbox/named pipe + windbg это можно было отловить. Я так думаю в файл не получится, т.к. трассировать хочу драйвер файловой системы… Ну да ладно, такими вопросами буду мучить народ из ReactOS))

3я потребность — вытекает из 2ой. Просто поискав по инету наткнулся на программы, которые кроме стека вызова функций еще и считают скока времени и ресурсов было затрачено. Для анализа оч. бы пригодилось, но ни с одной еще не работал, а в википедии их великое множество:
en.wikipedia.org/wiki/List_of_performance_analysis_tools

Собственно вопросы:
Пользовался ли кто-нть вышеописанными/подобными программами? Можете ли что-нть посоветовать для удовлетворения этих трех потребностей?
И вообще, интересуют программы позволяющие лучше разобраться в чужом коде и том как он работает))

PS собственно все это нужно для диплома/драйвера fastfat_new из ReactOS. Как сторонник OpenSource я бы предпочел свободные/открытые проги, но не питаю неприязни к проприетарному ПО =)
  • +4
  • q4a
  • 05 июля 2010, 16:08

Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.