zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    C#Web网站的创建
    C#Repeater控件的使用
    C#LINQ
    C#异常处理
    C#LINQ
    C#匿名委托,匿名函数,lambda表达式
    C#chart图表的应用
    C#用户控件的使用
    用 Python写 daemon
    CentOS 5.4 制作 Python 2.6 RPM 包的方法
  • 原文地址:https://www.cnblogs.com/azbane/p/12500715.html
Copyright © 2011-2022 走看看