функции которие не вызываютса
От: Brand_STEP_LVIV_UA Украина  
Дата: 20.09.07 14:23
Оценка:
Доброго времени суток.

Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.

зарание спасибо.
Re: функции которие не вызываютса
От: Erop Россия  
Дата: 20.09.07 14:24
Оценка:
Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:

B_S>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.


Линкер -> map файл?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: функции которие не вызываютса
От: jazzer Россия Skype: enerjazzer
Дата: 20.09.07 14:26
Оценка:
Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:

B_S>Доброго времени суток.


B_S>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.


B_S>зарание спасибо.


Xrefactory, насколько я помню, умеет такое
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: функции которие не вызываютса
От: Сергей Мухин Россия  
Дата: 20.09.07 21:18
Оценка:
Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:

B_S>Доброго времени суток.


B_S>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.


Система программирования?

А зачем это надо? Если для оптимизации, то
приличные системы не включают в результирующий код (.obj, .exe/.dll) не используемые ф-ии (и данные). Которые они могут распознать на своем уровне.
---
С уважением,
Сергей Мухин
Re: функции которие не вызываютса
От: valker  
Дата: 21.09.07 06:03
Оценка: 1 (1)
Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:

B_S>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.


LINT
Re[2]: функции которие не вызываютса
От: McQwerty Россия  
Дата: 21.09.07 11:35
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

B_S>>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.


СМ>А зачем это надо? Если для оптимизации, то

СМ>приличные системы не включают в результирующий код (.obj, .exe/.dll) не используемые ф-ии (и данные). Которые они могут распознать на своем уровне.

ИМХО, в объектный файл они, всё же, должны попасть. А вот в результат могут и не попасть, если линкер обнаружит отсутствие ссылок.
Re: функции которие не вызываютса
От: Schnitzer Германия  
Дата: 21.09.07 13:14
Оценка:
Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:

B_S>Доброго времени суток.


B_S>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.


B_S>зарание спасибо.


В какой среде работаеш?
Если MS Visual C++ / MS Visual Studio — Visual Assist ИМХО удобен)
Re[2]: функции которие не вызываютса
От: Brand_STEP_LVIV_UA Украина  
Дата: 24.09.07 08:27
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:


B_S>>Доброго времени суток.


B_S>>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.


СМ>Система программирования?


СМ>А зачем это надо? Если для оптимизации, то

СМ>приличные системы не включают в результирующий код (.obj, .exe/.dll) не используемые ф-ии (и данные). Которые они могут распознать на своем уровне.


нет, просто новий проект на основании старого, и некоторая функциональность соответственно лишняя, так вот хочетса чтоб не вручную искать, а например чтоб програмуля мне сказала что вот такие вот ф-ыи не вызываютса.
Re[3]: функции которие не вызываютса
От: Erop Россия  
Дата: 24.09.07 15:07
Оценка: 1 (1)
Здравствуйте, Brand_STEP_LVIV_UA, Вы писали:

B_S>нет, просто новий проект на основании старого, и некоторая функциональность соответственно лишняя, так вот хочетса чтоб не вручную искать, а например чтоб програмуля мне сказала что вот такие вот ф-ыи не вызываютса.


А собрать это "новый проект" сейчас можно?
Если можно, то линкер тебе правда всё скажет...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: функции которие не вызываютса
От: pasenger  
Дата: 05.10.07 05:37
Оценка:
Здравствуйте, Erop, Вы писали:

B_S>>тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.


E>Линкер -> map файл?


А как он может помочь? Сейчас попросил линкер сделать мне map-файл. Получил 15 метров живого веса. И что с этим файлом делать? Читать его что ли? (MSVS, если это важно)
Re[2]: функции которие не вызываютса
От: pasenger  
Дата: 05.10.07 06:06
Оценка:
Здравствуйте, Schnitzer, Вы писали:

B_S>>Есть проблемка. Проект на чистом С. Проект большой ф-ий много. В ручную искать слишком много времени займет. Так вот хотель бы узнать, есть ли какая нибуть тулза которая скажет: вот такие вот ф-ии определены но нигде не вызываютса.


S>В какой среде работаеш?

S>Если MS Visual C++ / MS Visual Studio — Visual Assist ИМХО удобен)

Расскажите пожалуйста, как Visual Assist может быть полезен в этом случае? У меня сложилось впечатление, что это вещь для редактирования/навигации преимущественно
Re[3]: функции которие не вызываютса
От: Erop Россия  
Дата: 05.10.07 12:37
Оценка: 1 (1)
Здравствуйте, pasenger, Вы писали:

P>А как он может помочь? Сейчас попросил линкер сделать мне map-файл. Получил 15 метров живого веса. И что с этим файлом делать? Читать его что ли? (MSVS, если это важно)


Напиши на чём-ниубдь, что умеет поддерживать регулярные выражения (наппример на редакторе MSVS) скрипт, который выдаст список описанных в MAP-файле функций...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: функции которие не вызываютса
От: pasenger  
Дата: 05.10.07 13:26
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, pasenger, Вы писали:


P>>А как он может помочь? Сейчас попросил линкер сделать мне map-файл. Получил 15 метров живого веса. И что с этим файлом делать? Читать его что ли? (MSVS, если это важно)


E>Напиши на чём-ниубдь, что умеет поддерживать регулярные выражения (наппример на редакторе MSVS) скрипт, который выдаст список описанных в MAP-файле функций...


Хорошо. Регулярными выражениями можно получить список всех вызываемых методов и фунций (классы, объекты, глобальные переменные и мемберы-данные в явном виде не присутствуют там, я правильно понимаю?)
Это действительно полезно. Но все равно проблема не совсем решена. Полученный список тоже будет тоже достаточно большим. Задача: найти весь именованный неиспользуемый код (не знаю, как это правильно сказать, — все невызываемые методы и функции, все классы для которых нет переменных, включая переменные потомков и т.д.)
Ну, допустим функции и методы. Теперь нужно получить весь список реализованных в коде методов и функций и "вычесть" из него список, полученный от map-файла. Есть какие-нибудь идеи, как получить данный список (из которого вычитать)?
Re[5]: функции которие не вызываютса
От: Erop Россия  
Дата: 05.10.07 18:03
Оценка: 1 (1) +1
Здравствуйте, pasenger, Вы писали:


P>Ну, допустим функции и методы. Теперь нужно получить весь список реализованных в коде методов и функций и "вычесть" из него список, полученный от map-файла. Есть какие-нибудь идеи, как получить данный список (из которого вычитать)?


Слинковатьпроект, с опциями препятствующими исключению неиспользуемых блоков...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: функции которие не вызываютса
От: 0xDEADBEEF Ниоткуда  
Дата: 05.10.07 19:39
Оценка:
Здравствуйте, 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.
Re[6]: функции которие не вызываютса
От: pasenger  
Дата: 06.10.07 12:05
Оценка:
Здравствуйте, Erop, Вы писали:

E>Слинковатьпроект, с опциями препятствующими исключению неиспользуемых блоков...


Спасибо
Осталось найти/пройти тьюториал по cl.exe
Re[7]: функции которие не вызываютса
От: Erop Россия  
Дата: 07.10.07 10:22
Оценка:
Здравствуйте, pasenger, Вы писали:

P>Спасибо

P>Осталось найти/пройти тьюториал по cl.exe
Например, можно собрать проект с опцией "экспортировать все символы"...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.