如何找出导致程序中未定义行为的原因?

时间:2017-03-07 08:06:25

标签: c++ qt undefined-behavior

我的Qt应用程序包含四个可以切换的屏幕。这些屏幕使用addWidget()添加到QStackedLayout类。屏幕之间的切换发生在setCurrentWidget()。

在其中一个屏幕(/ classes)的头文件中添加一些变量会导致程序崩溃。调试在adwidget()中给我一个段错误,我尝试将该屏幕添加到布局。

现在,如果我在构建之前清理所有内容,它始终有效。另外,如果只更改某个其他类的头文件中的某些内容(可以是任何头文件),并且我只重建那个头文件,它也能正常工作。

只有一个屏幕(/ class)才会发生。我添加的变量类型并不重要。无论是公共还是私人都无关紧要。这个班级与其他没有任何问题的班级几乎相同。当我编译时,我没有得到任何警告或错误。它只是在addwidget()崩溃。

有没有办法找出最新情况?

修改 这是valgrind memcheck的结果: enter image description here

compassdebugscreen.cpp中的第18行是:QString const strCalib3DStartBtn ="启动Calib 3D&#34 ;;

main.cpp中的第14行是:QApplication a(argc,argv)

0 个答案:

没有答案