Было бы очень полезно, если бы вы обновили свой вопрос, чтобы описать платформы и компиляторы, которые вы используете.
Стратегия, которую я использовал, - запуск системы на эмуляторе, который может отслеживать все инструкции. Затем эту трассировку команд можно использовать для определения покрытия кода.
В UNIX вы также можете запустить процесс, используя ptrace (), чтобы выполнить одношаговое приложение и, таким образом, зафиксировать выполненные инструкции.
Если вы просто хотите, чтобы трассировка вызова функции выполнялась, вы могли бы совершить несколько неприятных попыток взлома таблицы связей процедур, чтобы перейти к некоторому специализированному коду регистрации, но это, вероятно, безумие.
Опять же, для получения полезного ответа потребуются дополнительные сведения о среде выполнения и уровне детализации.