У меня есть инструмент gcc для некоторых целей. Цель состоит в том, чтобы иметь возможность отслеживать, какие функции GCC вызываются во время особенно компиляции. К сожалению, я не очень хорошо знаком с архитектурой GCC, поэтому мне нужна небольшая помощь. Я пробовал выполнить следующие действия:Как использовать gcc?
1) Взлом gcc/Makefile.in и добавление флага «-finstrument-functions» в T_CFLAGS.
2) У меня есть уже реализованная и проверенная версия start_test и end_test функции. Они вызываются из gcc/main.c, до и после toplev_main(). Содержащий файл связан с gcc (объект добавляется в OBJS-common, а зависимость определяется позже в gcc/Makefile.in)
3) Загрузка необходимых компонентов с вкладками contrib/download_prerequisites.
4) Выполнение конфигурации из чистой директории сборки (на том же уровне с исходным Dir): ./../gcc-4.6.2/configure --prefix="/opt/gcc-4.6.2/" --enable-languages="c,c++"
5) Запуск сборки с «сделать все»
Это так, как я запущенной из памяти, хотя У меня было 28G.
Далее я попытался удалить настройки T_CFLAGS из Makefile и дать команде -finstrument-функции команде make: make CFLAGS="-finstrument-functions"
. Построение было успешным таким образом, но когда я попытался скомпилировать что-то, он привел к пустым выходным файлам. (Теоретически end_test должен был записать свой результат в данный файл.)
Что я могу сделать неправильно? Спасибо заранее!
Вы хотите отследить внутренние функции GCC по мере их компиляции? Или что вы компилируете? –