Debug模式下不崩溃, Release模式下偶尔发生崩溃的解决思路

资料整合于各网友大佬。

debug和release两种编译模式的区别:

         debug和Release的区别

         深入了解Debug 和Release

调试release版本的方法:

        1. 使用弹出对话框的方法,确定是哪里出错了,然后再查看问题。此方法是笨方法,适用于新手,可以解决一些问题,但是只能定位,无法像调试一样查看过程中变量的信息。

        2. 此外,在实践中发现,通过上述方法会对结果产生影响,为避免此现象发生,换一种方法(在QT下),使用qInstallMessageHandler(myoutput);其中myoutput,是根据qt帮助文档中的例子写的(直接复制过来就能用)然后再需要打印提示信息的地方直接使用即可。具体查看可通过以下设置查看错误信息:

       第一是打开项目属性->连接器->系统->子系统->选择控制台;即可在控制台上输出打印信息;

       第二是直接在刚才函数后面添加一个文件,以读写和追加方式打开,将调试信息输出到文本文件中。

        3. 其实,更好的解决方法是:

        设置release版本下的属性,c/c++->优化->已禁用;

        连接器调试->生成调试信息改为优化以便于调试,即可像debug一样打断点进行调试了。

        经过一番折腾,最后发现是有个指针变量没有赋初值导致的。常见的debug没问题而release出错的情况主要有:

        变量未初始化;

        数据溢出;

        内存分配方式不同引起的问题等。

如何使Qt的release模式可调式(windows)如何使QT的Release模式可调试(Windows)

原文地址:https://www.cnblogs.com/azbane/p/12500715.html