解决方案:
右键项目->属性->配置属性->C/C++->常规->调试信息格式 设置为 “程序数据库(/Zi)”
--------------------------------------------------优化->优化 设置为 “已禁用(/Od)”
---------------------------------------连接器->调试->生成调试信息 设置为 “优化以便于调试(/DEBUG)”
#
release
断点
测试
QMAKE_CXXFLAGS_
RELEASE
= $$QMAKE_CFLAGS_
RELEASE
_WITH_DEBUGINFO
QMAKE_LFLAGS_
RELEASE
= $$QMAKE_LFLAGS_
RELEASE
_WITH_DEBUGINFO
重新构建项目
重新运行即可像debug一样
断点
调试
有些时候,因为某些工程pro文件设置了debug和
Release
版本的原因,导致在编译运行的时候,程序会自动生成带d后缀的一些库文件,进行调试。debug
模式
下我们打
断点
进行调试,大家都知道。但是
Release
模式
下,如果你直接Ctrl + R运行,肯定是
无法
断点
调试的。然后使用F5调试运行,就可以使用
断点
调试了。
因此,如果你不需要进行详细的调试,或者对文件大小有严格的要求,可以考虑在
Release
构建中禁用生成调试信息的选项。在工作的时候遇到了第三方库只提供
release
版本的库的情况,我需要在这基础上封装一层自家库,在调试的时候遇到如下
问题
,但是在
Qt
环境下,
release
的库只能在进行
release
构建和调试。首先理解调试的必备条件,无论是
VS
环境,还是
Qt
环境下,都需要pdb文件(),debug
模式
下默认生成这个,但是
release
模式
下,不一定会生成这个。完成构建后,在指定的路径下应该会生成PDB文件。
有时候程序过大时,用Debug在
VS
下调试速度过慢,变换成
release
版本。
需要确保每一个工程都有如下配置,例如你想调试Recog工程下的某个CPP文件。那么只对cup工程
release
的配置是不够的,也需要对Recog工程有这个配置。
具体操作如下:
本人在进行
qt
调试
模式
时发现加的
断点
都无效,debug
模式
和run
模式
一个样,为此在网上寻找原因,总结如下几个原因:
一、在界面右下角没有选择debug
模式
,而是选择的
release
模式
,因此不会进入调试
模式
,
断点
无效,解决办法:将
模式
改为debug
模式
,或者打开.pro文件,将CONFIG+=
release
修改为CONFIG+=debug;
二、选择的构建方式为影子构建,导致生成的文件和工程...
在
Release
下面让Debug可以
断点
调试,这个方法只能是手动打
断点
,但是如果崩溃了是不会跳到具体崩溃的地方的。但是我怎么也找不到到底什么
问题
导致崩溃,指针都没有空,函数return感觉也不是
问题
。最后,通过一步步调,我发现,我的代码在
release
下崩溃的原因是因为析构顺序的错误。例如说,我生成A,由A生成B,B在生成C。A是一个弹框,B是一个弹框,C是B的内容。当B被关闭的时候给A一个关闭信号,让A删除B,然后B析构的时候删除C。正确的析构逻辑应是B被关闭后,先析构C,再让A析构B。
转自:http://www.lgwimonday.cn/archives/1604
如在
vs
中设置了
断点
,结果调试的时候,始终进不去
断点
,这可能是因为你修改了源文件中的内容导致的。
解决方案:将
断点
文件所在的工程重新编译。
如果还不行,那就试试下面的方法。
1、项目->属性->配置属性->C/C++->优化 选择“已禁用(/od)”
2、项目->...