[This entry is a refinement of an article I found here]
Testing applications for mobiles or embedded systems is very hard most of the time because I'm not always able to debug the application on the device. One solution was to write some debugging lines inside the program, and when the program passes each of these lines, the line will be written to a text file. Then I can simply open the text file and see how the application went or where it stopped.
Here it how it goes:
- Before the main(), I write:
where each line of
- Then inside the main():
- Now at any class, if I want to write a message, I will just include:
and write the line I want. For example:
Testing applications for mobiles or embedded systems is very hard most of the time because I'm not always able to debug the application on the device. One solution was to write some debugging lines inside the program, and when the program passes each of these lines, the line will be written to a text file. Then I can simply open the text file and see how the application went or where it stopped.
Here it how it goes:
- Before the main(), I write:
using namespace std;
ofstream logfile;
void SimpleLoggingHandler(QtMsgType type, const char *msg)
{
switch (type) {
case QtDebugMsg:
logfile << QTime::currentTime().toString().toAscii().data() << " Debug: " << msg << "\n";
break;
case QtCriticalMsg:
logfile << QTime::currentTime().toString().toAscii().data() << " Critical: " << msg << "\n";
break;
case QtWarningMsg:
logfile << QTime::currentTime().toString().toAscii().data() << " Warning: " << msg << "\n";
break;
case QtFatalMsg:
logfile << QTime::currentTime().toString().toAscii().data() << " Fatal: " << msg << "\n";
abort();
}
}
where each line of
logfile << QTime::currentTime().toString().toAscii().data() << " Debug: " << msg << "\n";represents the format before each message I write. In this example I write the time, then the type of message, then the message.
- Then inside the main():
logfile.open("E:/myFile.txt", ios::app);
qInstallMsgHandler(SimpleLoggingHandler);
- Now at any class, if I want to write a message, I will just include:
#include <QDebug>
and write the line I want. For example:
qDebug()<< "[XmlClass] Receiving xml data from httpclient";[I added class name between square brackets to know the class I am in]
Comments
Post a Comment