Макрос для печати функции входа и выхода трассировки

Я пытаюсь отладить проблему, и я хотел бы напечатать следы для входа и выхода / выхода каждой функции, чтобы я мог проследить поток последовательности.
Макрос для печати функции входа и выхода / выхода трассировки может быть написан.
Я знаю, что должен создать класс, конструктор которого должен записывать запись, а десктруктор — запись выхода / выхода из функции. Но мне не ясно, как именно это должно быть реализовано. Любые предложения будут полезны.
Спасибо!

1

Решение

#define LOG_CALL tracer_t _token(__func__)
struct tracer_t {
char const* fname;
tracer_t(char const* fname_): fname(fname_) { printin(fname); }
~tracer_t() { printout(fname); }
}

void myfunc() { LOG_CALL;
// test function
}
1

Другие решения

Есть несколько каркасов для C ++, которые помогают делать подобные вещи. Мне нравится log4cplus.

0

По вопросам рекламы [email protected]