Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.
Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:
B_S>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.
Линкер -> map файл?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:
B_S>Доброго времени суток.
B_S>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.
B_S>зарание спасибо.
Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:
B_S>Доброго времени суток.
B_S>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.
Система программирования?
А зачем это надо? Если для оптимизации, то
приличные системы не включают в результирующий код (.obj, .exe/.dll) не используемые ф-ии (и данные). Которые они могут распознать на своем уровне.
Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:
B_S>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.
Здравствуйте, Сергей Мухин, Вы писали:
B_S>>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.
СМ>А зачем это надо? Если для оптимизации, то СМ>приличные системы не включают в результирующий код (.obj, .exe/.dll) не используемые ф-ии (и данные). Которые они могут распознать на своем уровне.
ИМХО, в объектный файл они, всё же, должны попасть. А вот в результат могут и не попасть, если линкер обнаружит отсутствие ссылок.
Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:
B_S>Доброго времени суток.
B_S>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.
B_S>зарание спасибо.
В какой среде работаеш?
Если MS Visual C++ / MS Visual Studio — Visual Assist ИМХО удобен)
Здравствуйте, Сергей Мухин, Вы писали:
СМ>Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:
B_S>>Доброго времени суток.
B_S>>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.
СМ>Система программирования?
СМ>А зачем это надо? Если для оптимизации, то СМ>приличные системы не включают в результирующий код (.obj, .exe/.dll) не используемые ф-ии (и данные). Которые они могут распознать на своем уровне.
нет, просто новий проект на основании старого, и некоторая функциональность соответственно лишняя, так вот хочетса чтоб не вручную искать, а например чтоб програмуля мне сказала что вот такие вот ф-ыи не вызываютса.
Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:
B_S>нет, просто новий проект на основании старого, и некоторая функциональность соответственно лишняя, так вот хочетса чтоб не вручную искать, а например чтоб програмуля мне сказала что вот такие вот ф-ыи не вызываютса.
А собрать это "новый проект" сейчас можно?
Если можно, то линкер тебе правда всё скажет...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
B_S>>тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.
E>Линкер -> map файл?
А как он может помочь? Сейчас попросил линкер сделать мне map-файл. Получил 15 метров живого веса. И что с этим файлом делать? Читать его что ли? (MSVS, если это важно)
Здравствуйте, Schnitzer, Вы писали:
B_S>>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.
S>В какой среде работаеш? S>Если MS Visual C++ / MS Visual Studio — Visual Assist ИМХО удобен)
Расскажите пожалуйста, как Visual Assist может быть полезен в этом случае? У меня сложилось впечатление, что это вещь для редактирования/навигации преимущественно
Здравствуйте, pasenger, Вы писали:
P>А как он может помочь? Сейчас попросил линкер сделать мне map-файл. Получил 15 метров живого веса. И что с этим файлом делать? Читать его что ли? (MSVS, если это важно)
Напиши на чём-ниубдь, что умеет поддерживать регулярные выражения (наппример на редакторе MSVS) скрипт, который выдаст список описанных в MAP-файле функций...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, pasenger, Вы писали:
P>>А как он может помочь? Сейчас попросил линкер сделать мне map-файл. Получил 15 метров живого веса. И что с этим файлом делать? Читать его что ли? (MSVS, если это важно)
E>Напиши на чём-ниубдь, что умеет поддерживать регулярные выражения (наппример на редакторе MSVS) скрипт, который выдаст список описанных в MAP-файле функций...
Хорошо. Регулярными выражениями можно получить список всех вызываемых методов и фунций (классы, объекты, глобальные переменные и мемберы-данные в явном виде не присутствуют там, я правильно понимаю?)
Это действительно полезно. Но все равно проблема не совсем решена. Полученный список тоже будет тоже достаточно большим. Задача: найти весь именованный неиспользуемый код (не знаю, как это правильно сказать, — все невызываемые методы и функции, все классы для которых нет переменных, включая переменные потомков и т.д.)
Ну, допустим функции и методы. Теперь нужно получить весь список реализованных в коде методов и функций и "вычесть" из него список, полученный от map-файла. Есть какие-нибудь идеи, как получить данный список (из которого вычитать)?
P>Ну, допустим функции и методы. Теперь нужно получить весь список реализованных в коде методов и функций и "вычесть" из него список, полученный от map-файла. Есть какие-нибудь идеи, как получить данный список (из которого вычитать)?
Слинковатьпроект, с опциями препятствующими исключению неиспользуемых блоков...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:
B_S>вот такие вот ф-ии определены но нигде не вызываютса.
Если на линухе, то опции
GCC (компиляция): -ffunction-sections -fdata-sections
GCC (линковка): -Xlinker,--gc-sections,--print-gc-sections
сделают то, что ты хочешь.
Кстати, это дело на выни не выгорит тк для PE gc-sections не работает. Только для ELF
__________
16.There is no cause so right that one cannot find a fool following it.
Здравствуйте, pasenger, Вы писали:
P>Спасибо P>Осталось найти/пройти тьюториал по cl.exe
Например, можно собрать проект с опцией "экспортировать все символы"...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском