C++ 用于打印函数入口和出口跟踪的宏
我试图调试一个问题,我想打印每个函数的入口和出口/出口跟踪,以便跟踪序列流。 可以编写用于打印函数进入和退出/离开跟踪的宏。 我知道我应该创建一个类,它的构造函数应该记录函数的进入和退出。但我不清楚该如何具体实施。任何建议都会有帮助。C++ 用于打印函数入口和出口跟踪的宏,c++,function,macros,trace,C++,Function,Macros,Trace,我试图调试一个问题,我想打印每个函数的入口和出口/出口跟踪,以便跟踪序列流。 可以编写用于打印函数进入和退出/离开跟踪的宏。 我知道我应该创建一个类,它的构造函数应该记录函数的进入和退出。但我不清楚该如何具体实施。任何建议都会有帮助。 谢谢
谢谢有几种C++框架可以帮助你完成这类事情。我喜欢log4cplus。您要的是代码还是提示?为什么不使用gdb?我看不出添加“函数输入”和“函数退出”将如何帮助您调试问题。如果您在遵循“顺序流”时遇到问题,那么您的程序可能需要重构。阅读关于GDB的教程要比编写一个特殊宏来自动跟踪函数快得多。添加入口和出口跟踪可以让我隔离代码中出错的部分。
#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
}