У меня есть сторонний исходный код, который я должен исследовать. Я хочу видеть, в каком порядке вызываются функции, но я не хочу тратить свое время, набирая:
printf("Entered into %s", __FUNCTION__)
и
printf("Exited from %s", __FUNCTION__)
для каждой функции, и я не хочу касаться какого-либо исходного файла.
У вас есть предложения? Есть ли флаг компилятора, который автоматически делает это для меня?
Пояснения к комментариям:
- Я буду кросс-компилировать исходный код для запуска его на ARM.
- Я скомпилирую его с помощью gcc.
- Я не хочу анализировать статический код. Я хочу отслеживать время выполнения. Так что кислород не облегчит мне жизнь.
- У меня есть источник, и я могу скомпилировать его.
- Я не хочу использовать Аспектно-ориентированное программирование.
EDIT:
Я обнаружил, что команда frame в приглашении gdb печатает текущий кадр (или, можно сказать, имя функции) в тот момент времени. Возможно, можно (используя сценарии GDB) вызывать команду frame каждый раз, когда вызывается функция. Что ты думаешь?