Tracer.h
#ifndef TRACER_H
#define TRACER_H
#include <QDebug>
#include <iostream>
#define TRACER_DEBUG
#ifdef TRACER_DEBUG
#define TRACER \
do { \
Tracer tracer(__FUNCTION__ ); \
qDebug(); \
}while(0);
#else
#define TRACER
#endif
class Tracer
{
public:
Tracer(const char msg[]):
m_msg(msg)
{
fprintf(stderr, "Enter: ");
}
~Tracer()
{
fprintf(stderr, "Leave: %s", m_msg);
}
private:
const char* m_msg;
};
#endif // TRACER_H
#include "mainwindow.h"
#include <QApplication>
#include "Tracer.h"
#include <QString>
//#define TRACER_DEBUG 1
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
mainwindow w;
w.show();
QString pattern("%{function}@@@@%{line},%{file}");
qSetMessagePattern(pattern);
TRACER
return a.exec();
}