Как найти мертвый код в проекте на языке Си с помощью компилятора gcc - PullRequest
0 голосов
/ 28 сентября 2018

Мне нужно найти мертвый код (функции не используются) в моем проекте "C" (с несколькими файлами C) с помощью компилятора gcc.Пожалуйста, дайте мне знать опции gcc, чтобы найти мертвый код.Ваша помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Неиспользуемые статические функции см. Эд Кинг * ответ .

Для глобальных функций вы можете попробовать это: Создайте проект дважды, один раз как обычно иодин раз с -ffunction-sections -Wl,--gc-sections (первый - флаг компилятора, второй - флаг компоновщика).Затем вы можете запустить nm в сгенерированных двоичных файлах, чтобы получить список символов для обоих запусков.Компоновщик удалит неиспользуемые функции во втором запуске, так что это ваш список мертвых функций.

Это предполагает общую цель, такую ​​как ELF, компоновщик binutils, и что конечные двоичные файлы не лишены своего символатаблица.

0 голосов
/ 28 сентября 2018

Вы можете использовать опцию компилятора GCC -Wunused-function, чтобы предупредить вас о неиспользованных static функциях.Я не уверен, как вы обнаружите неиспользуемые «публичные» функции, за исключением того, что вы просматриваете файл карты для функций, которые не были связаны.

...