Qt中程序调试的步骤 |
您所在的位置:网站首页 › 什么是单步运行模式 › Qt中程序调试的步骤 |
Qt中程序调试的步骤
1、设置断点
假使主函数如下: #include #include int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget widget; int x = widget.x(); int y = widget.y(); QRect geometry = widget.geometry(); QRect frame = widget.frameGeometry(); return a.exec(); }所谓断点,就是程序运行到该行代码时会暂停下来,从而可以查看一些信息,如变量值等。要取消断点,只要在那个断点上再点击一下就可以了。设置好断点后便可以按下F5或者左下角的调试按钮开始调试。这时程序会先进行构建再进入调试模式,这个过程可能需要一些时间。在程序构建时可能会出现警告,那是因为我们定义了变量却没有使用造成的,不用管它。 例如:下面在int x = widget.x(); 一行代码的标号前面点击鼠标左键来设置断点。 2、调试模式
①继续按钮。程序在断点处停了下来,按下继续按钮后,程序便会像正常运行一样,执行后面的代码,直到遇到下一个断点,或者程序结束。 ②停止调试按钮。按下该按钮后结束调试。 ③单步跳过按钮。直接执行本行代码,然后指向下一行代码。 ④单步进入按钮。进入调用的函数内部。 ⑤单步跳出按钮。当进入函数内部时,跳出该函数,一般与单步进入配合使用。 ⑥重新启动调试会话。 ⑦显示源码对应的汇编指令,并可以单步调试。 ⑧堆栈视图。这里显示了从程序开始到断点处,所有嵌套调用的函数所在的源文件名和行号。 ⑨其它视图。这里可以选择多种视图。 3、单步调试点击一下“单步进入”按钮,或者按下F11,这时,程序会跳转到QWidget类的x()函数的源码处,这里对这个函数不做过多讲解,下面直接按下“单步跳出”按钮回到原来的断点处。然后便开始一直按“单步跳过”按钮,单步执行程序,并查看局部变量和监视器视图中相应变量值的变化情况。等执行到最后一行代码return a.exec();时,按下“停止调试”按钮,结束调试。 按下“单步进入”后: 现在再次调试程序,这时会发现窗口只显示了一个标题栏,先不管它,继续在Qt Creator中点击“单步跳过”按钮。当我们将程序运行到最后一行代码return a.exec();时,再次按下“单步跳过”按钮后,程序窗口终于显示出来了。这是因为只有程序进入主事件循环后才能接收事件,而show()函数会触发显示事件,所以只有在完成a.exe()函数调用进入消息循环后才能正常显示。这次看到几个变量的值都有了变化,但是这时还是不清楚这些值的含义。 注意:因为使用调试器进行调试要等待一段时间,而且步骤很麻烦,对于初学者来说,如果按错了按钮,还很容易出错。 所以,并不推荐初学者使用。 4、使用qDebug()函数一般在程序调试过程中很常用的是qDebug()函数,它可以将调试信息直接输出到控制台,在Qt Creator中是输出到应用程序输出栏 。例如: QApplication a(argc,argv); QWidget widget; widget.resize(400,300); widget.move(200,100); widget.show(); int x = widget.x(); qDebug("x: %d",x); //输出x的值 int y = widget.y(); qDebug("y: %d",y); //输出y的值 QRect geometry = widget.geometry(); QRect frame = widget.frameGeometry(); qDebug() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |