学习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!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值