-
Доброго дня мастера!
Можно ли как-то узнать, какой модуль какие модуля "подтягивает" при компиляции? Ситуация следующая. Проект большой и изменяют несколько человек. Был замеч резкий скачек размера exe файла. При билде видно, что он юзает модуля, которые в принципе не должен подтягивать. Часть модулей пересмотрели на предмет uses. Не онаружили. Так вот хотелось бы узнать, какой модуль подтягивает эти ненужные модуля при помощи какой нить приблуды. Мот кто знает такую.
-
> Можно ли как-то узнать
В ран-тайм что ли ?
-
да нет конечно. просто как анализатор нужен
-
Раз нет, то для дизайн-тайм имеется dump.exe
-
> да нет конечно. просто как анализатор нужен
map-файл
-
мне нужен анализатор, который бы выдал, что юнит такой-то юзает такие-то юниты... С модулями - это я погорячился
-
> мне нужен анализатор
Ну и напиши. Какие проблемы-то ?
map-файл - он текстовый, структура его понятна и прозрачна ..
-
> мне нужен анализатор, который бы выдал, что юнит такой-то
> юзает такие-то юниты
С модулями это я погорячился
Есть такая прога у меня, сделана за 15 мин
-
Строит дерево для каждого юнита в папке:
Юнит:
модули в int. части
модули в imp. части
модули, который используют этот
двунаправленая связь
Если есть двунаправленая связь, то раскрывает нод.
Не всегда правильно выбирает имена модулей.
давай пришлю на мыло.
-
> Не всегда правильно выбирает имена модулей.
иногда - вешает машину
очень редко - форматирует хард
:))
-
О! Если можешь кинь на мыло salexn@tut.by
Буду премного благодарен!
-
> Проект большой и изменяют несколько человек
а, как бы, эти несколько мудрых магикан никакой системы контроля версий не используют?
-
используют конечно. но! никто не обращал внимания некоторое время на эту проблему. Ну вырос и вырос. А лазить по всем изменениям - не радует. И CVS не очень располагает к поиску изменений с даты по дату
-
>иногда - вешает машину
>очень редко - форматирует хард
улыбнуло :) будем тестить на виртуалке
-
ну млин :)
ну какого нибудь юнгу можно было бы и заставить полазать если уж так критично...
-
Отправил.
Там окно ввода и кнопка.
В окно ввода вводишь путь к папке с проектом.
Жмешь на кнопку. Он построит дерево.
-
> очень редко форматирует хард
Пчти никогда :)
> ну какого нибудь юнгу можно было бы и заставить полазать
> если уж так критично
Да ну пративно это лазить
-
Есть еще метод. Нарисовать UML диаграмму модулей. Использовать класы как обозначение модулей. Ассоциации если связаны в интерфейсе. Зависимости если связваны в реализации. Удобно пользоваться, но строить за
трудно короче :)
-
-
-
спасибо.
-
окошки, кнопочки, UML… капец. вот что делает с людьми отсутствие удобных консольных инструментов. тут всей задачи-то — на один скриптик с парой регэкспов…
-
ketmar © (27.01.08 12:52) [21]
> тут всей задачи-то — на один скриптик с парой регэкспов…
Напиши. Мне крайне интересно, бо такой инстумент тоже не повредит. Икарус по ссылке иногда не совсем корректно определяет, кто что неиспользует.
Я у тебя даже готов купить, если сделаешь нормально. Мне нужно, чтобы по большому проекту были определены лишние юниты в uses.
-
Мне еще интересно былобы узнать как связаны модули, особенно еслить ли двунаправленные связи.
-
>[22] Игорь Шевченко ©(27.01.08 12:58)
[0]:
>Можно ли как-то узнать, какой модуль какие модуля «подтягивает» при
>компиляции?
и где тут задача «определить ненужное»? задача сформулирована как «построить списки импорта (возможно, в виде дерева)». это делается простым find+[e]grep/awk. ни на что большее скрипт и на замахивается.
-
ketmar © (27.01.08 14:49) [24]
Не импорта, а uses. Несколько разные вещи.
-
>[25] Игорь Шевченко ©(27.01.08 15:25)
ну, не совсем чисто выразился. натурально, имелся в виду «импорт модулей» (что, в принципе, и делает uses). конечно, не детальный поимённый импорт сущностей(для такого придётся скрипт посложнее делать, а для качественного так и вовсе проще работать с AST).
почему подобные деревья не умеет генерировать сам компилятор — для меня загадка.
-
> почему подобные деревья не умеет генерировать сам компилятор
> — для меня загадка.
Угу, мог бы ErrorInsite поддчеркивать напрмер, или в хинте сообщать как с перемеными ненужными.