在QT中发现错误

Fra*_*ank 2 debugging error-handling qt

在QT-creator中我收到以下错误:

QVector :: operator []中的ASSERT失败:"索引超出范围",文件c:\ QtSDK\Desktop\Qt\4.8.1\mingw\include/QtCore/qvector.h,第359行

我的问题是它没有指定哪个QVector超出范围......即使我在调试模式下运行,我也找不到错误的位置.有没有办法轻松找到错误?代码非常庞大,错误只会偶尔弹出一次,所以检查我单独使用的每个qVector都需要做很多工作.

Tim*_*yer 5

假设您正在使用Qt Creator,则会出现一个"堆栈"窗口,其中显示了导致程序停止的函数调用:

堆栈窗口的图片

在该窗口中,双击您知道的第一个文件是您自己的文件,在该屏幕截图中,它是第5行的main.cpp.文件将打开,并显示一个黄色箭头.引起断言的行是黄色箭头上方的那一行(该箭头实际指向下一个本应执行的语句)

  • 使用MinGW进行编译时,Q_ASSERT不允许您进入调试器.我以前遇到过这个问题.即使你在调试器中启动,它仍然会终止应用程序. (4认同)