学习qt调试

学习qt调试

1. 使用警告和调试信息

qDubug():输出调试信息
    Example:
        qDebug( "my window handle = %x", myWidget->id() );

qWarning():输出警告信息
    Example:
        void f( int c )
        {
            if ( c > 200 )
                qWarning( "f: bad argument, c == %d", c );
        }

qFatal():输出致命错误信息 ,程序自动被迫中止
    Example:
        int divide( int a, int b )
        {
            if ( b == 0 )                               // program error
                qFatal( "divide: cannot divide by zero" );
            return a/b;
        }


使用例子:

        #include <qapplication.h>
       #include <iostream.h>

        void myMessageOutput( int input );

        int main( int argc, char **argv )
        {
            QApplication a( argc, argv );
            int temp;
         
            while(1)
          {
              cout << "Please input 1  2 or 3 here and else for quit:";
              cin>>temp;
              myMessageOutput( temp )    ;
          }         
            return a.exec();
        }

       void myMessageOutput( int input )
        {
            switch ( input ) {
                case 1:
                qDebug("The number you input is : %d  ",input);
                    break;
                case 2:                  
                qWarning("The number you input is : %d  ",input);
                    break;
                case 3:
                qWarning("The number you input is : %d  ",input);   
                    break;                 
             default :
                //qWarning("The number you input is : %d  ,which is invalid here.",input);
                qFatal( "It will be quit." );
                //cout<<"It will be quit."<<endl ;
                //abort();
            }
        }



2. 使用调试宏
头文件qglobal.h 中定义了一些用于调试的宏:
Q_ASSERT(BOOL b) :b为假时程序将输出警告信息并指出代码所在的文件和行数
Q_CHECK_PTR(point):point为一个指针变量,如果point为空时,将输出警告信息并指出代码所在的文件和行数

ASSERT(BOOL b)和CHECK_PTR(point)是标准C++中的语法。

        #include <qapplication.h>
       #include <iostream.h>
       //#include <qglobal.h>   

       void check_assert(int size);


        int main( int argc, char **argv )
        {
            QApplication a( argc, argv );
            int temp;
         
            while(1)
          {
              cout << "Please input a number here which should be more than 5 ,or less 0  quit:";
              cin>>temp;
              check_assert(temp);
          }         
            return a.exec();
        }


       void check_assert(int size)
       {
            ASSERT( ( size > 0) );
            char* p= NULL;
            if ( size > 5 )
                p = new char(size);
            if ( size < 0 )
            {
                cout<<"It will be quit."<<endl ;   
                abort();
            }   
            else
                CHECK_PTR(p);
       }   

 

    作者:zieckey (zieckey@yahoo.com.cn)
    All Rights Reserved!

你可能感兴趣的:(c,null,less,input,qt)