Я пытаюсь отладить проблему, и я хотел бы напечатать следы для входа и выхода / выхода каждой функции, чтобы я мог проследить поток последовательности.
Макрос для печати функции входа и выхода / выхода трассировки может быть написан.
Я знаю, что должен создать класс, конструктор которого должен записывать запись, а десктруктор — запись выхода / выхода из функции. Но мне не ясно, как именно это должно быть реализовано. Любые предложения будут полезны.
Спасибо!
#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
}
Есть несколько каркасов для C ++, которые помогают делать подобные вещи. Мне нравится log4cplus.