Qt Reference Documentation

# QDebug Class Reference

The QDebug class provides an output stream for debugging information. More...

     #include <QDebug>

- List of all members, including inherited members

## Public Functions

| QDebug ( QIODevice * device )
| QDebug ( QString * string )
| QDebug ( QtMsgType type )
| QDebug ( const QDebug & other )
| ~QDebug ()
QDebug & | maybeSpace ()
QDebug & | nospace ()
QDebug & | space ()
QDebug & | operator<< ( QChar t )
QDebug & | operator<< ( bool t )
QDebug & | operator<< ( char t )
QDebug & | operator<< ( signed short i )
QDebug & | operator<< ( unsigned short i )
QDebug & | operator<< ( signed int i )
QDebug & | operator<< ( unsigned int i )
QDebug & | operator<< ( signed long l )
QDebug & | operator<< ( unsigned long l )
QDebug & | operator<< ( qint64 i )
QDebug & | operator<< ( quint64 i )
QDebug & | operator<< ( float f )
QDebug & | operator<< ( double f )
QDebug & | operator<< ( const char * s )
QDebug & | operator<< ( const QString & s )
QDebug & | operator<< ( const QStringRef & s )
QDebug & | operator<< ( const QLatin1String & s )
QDebug & | operator<< ( const QByteArray & b )
QDebug & | operator<< ( const void * p )
QDebug & | operator= ( const QDebug & other )

## Detailed Description

The QDebug class provides an output stream for debugging information.

QDebug is used whenever the developer needs to write out debugging or tracing information to a device, file, string or console.

### Basic Use

In the common case, it is useful to call the qDebug() function to obtain a default QDebug object to use for writing debugging information.

         qDebug() << "Date:" << QDate::currentDate();
         qDebug() << "Types:" << QString("String") << QChar('x') << QRect(0, 10, 50, 40);
         qDebug() << "Custom coordinate type:" << coordinate;

This constructs a QDebug object using the constructor that accepts a QtMsgType value of QtDebugMsg. Similarly, the qWarning(), qCritical() and qFatal() functions also return QDebug objects for the corresponding message types.

The class also provides several constructors for other situations, including a constructor that accepts a QFile or any other QIODevice subclass that is used to write debugging information to files and other devices. The constructor that accepts a QString is used to write to a string for display or serialization.

### Writing Custom Types to a Stream

Many standard types can be written to QDebug objects, and Qt provides support for most Qt value types. To add support for custom types, you need to implement a streaming operator, as in the following example:

     QDebug operator<<(QDebug dbg, const Coordinate &c)
     {
         dbg.nospace() << "(" << c.x() << ", " << c.y() << ")";

         return dbg.space();
     }

This is described in the Debugging Techniques and Creating Custom Qt Types documents.

## Member Function Documentation

### QDebug::QDebug ( QIODevice * device )

Constructs a debug stream that writes to the given device.

### QDebug::QDebug ( QString * string )

Constructs a debug stream that writes to the given string.

### QDebug::QDebug ( QtMsgType type )

Constructs a debug stream that writes to the handler for the message type specified by type.

### QDebug::QDebug ( const QDebug & other )

Constructs a copy of the other debug stream.

### QDebug::~QDebug ()

Flushes any pending data to be written and destroys the debug stream.

### QDebug & QDebug::maybeSpace ()

Writes a space character to the debug stream, depending on the last character sent to the stream, and returns a reference to the stream.

If the last character was a space character, this function writes a space character to the stream; otherwise, no characters are written to the stream.

See also space() and nospace().

### QDebug & QDebug::nospace ()

Clears the stream's internal flag that records whether the last character was a space and returns a reference to the stream.

See also space() and maybeSpace().

### QDebug & QDebug::space ()

Writes a space character to the debug stream and returns a reference to the stream.

The stream will record that the last character sent to the stream was a space.

See also nospace() and maybeSpace().

### QDebug & QDebug::operator<< ( QChar t )

Writes the character, t, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( bool t )

Writes the boolean value, t, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( char t )

Writes the character, t, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( signed short i )

Writes the signed short integer, i, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( unsigned short i )

Writes then unsigned short integer, i, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( signed int i )

Writes the signed integer, i, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( unsigned int i )

Writes then unsigned integer, i, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( signed long l )

Writes the signed long integer, l, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( unsigned long l )

Writes then unsigned long integer, l, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( qint64 i )

Writes the signed 64-bit integer, i, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( quint64 i )

Writes then unsigned 64-bit integer, i, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( float f )

Writes the 32-bit floating point number, f, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( double f )

Writes the 64-bit floating point number, f, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( const char * s )

Writes the '\0'-terminated string, s, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( const QString & s )

Writes the string, s, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( const QStringRef & s )

Writes the string reference, s, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( const QLatin1String & s )

Writes the Latin1-encoded string, s, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( const QByteArray & b )

Writes the byte array, b, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator<< ( const void * p )

Writes a pointer, p, to the stream and returns a reference to the stream.

### QDebug & QDebug::operator= ( const QDebug & other )

Assigns the other debug stream to this stream and returns a reference to this stream.