QT调试技术

    技术2022-05-11  71

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

    //QT调试技术

    void check_assert(int size);

    void myMessageOutput( int input );

    int main( int argc, char **argv ) {    QApplication a( argc, argv );    int temp;

        while (1) {        std::cout << "Please input 1  2 or 3 here and else for quit:";        std::cin >> temp;        myMessageOutput( temp );        check_assert(temp);    }    return a.exec();}

    /*使用警告和调试信息qDebug()qWarning()qFatal()*/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为空时,将输出警告信息并指出代码所在的文件和行数*/

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

    /*

    参考资料:     学习qt调试Author  :魏自立 */


    最新回复(0)