У меня почти такой же вопрос, как и Как добавить код при вводе каждой функции? , но для C :
Поскольку я поддерживаю чей-то большой недокументированный проект, я хочу, чтобы код был похож на
static C0UNT_identifier_not_used_anywhere_else = 0;
printf("%s%s:%d#%d", __func__, strrchr(__FILE__,'/'), __LINE__, ++C0UNT_identifier_not_used_anywhere_else);
для запуска при вводе каждой функции, чтобы я
- есть журнал того, что называет что, и
- может сказать, на каком n th вызове функции, которую она ломает.
Существующий код содержит сотни исходных файлов, поэтому невозможно добавить макрос, например,
#define ENTRY_CODE ...
...
int function() {
ENTRY_CODE
...
}
в каждой функции. Я также не использую DevStudio, Visual Studio или другой компилятор, предоставляющий __cyg_profile_func_enter или подобные расширения.
При желании я хотел бы напечатать возвращаемое значение каждой функции при выходе в похожем стиле. Могу ли я сделать это тоже?