Вы можете получить что-то полезное из запуска CPPCheck , который выполняет статический анализ вашего кода. Обработка всех ошибок как предупреждений также поможет определить, какие переменные не используются, поскольку ваш код не будет компилироваться до тех пор, пока они не будут устранены.
Другая вещь, которую вы могли бы сделать, - это создать набор модульных тестов, чтобы покрыть ожидаемую функциональность, и запустить его через инструмент покрытия (например, gcov, если вы используете GCC), это покажет, какие строки кода выполняются, и сколько раз.