VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 808|回复: 2

调试Release有问题.

[复制链接]

2

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-1-17 16:40:01 | 显示全部楼层 |阅读模式
在Debug下调试, 显示已经没有内存泄漏了, 但在Release下调试时显示有内存泄

漏, 我定位到某个new, 并且最终delete了它. 但仍然显示泄漏, 我打算说这是VC6一

个BUG了. 由于只有几十个字节的出入, 而我的程序使用内存比较动荡, 所以用任务

管理器难看出变化. 郁闷.

大家有没有遇到Release下调试与Debug下调试结果不一样的? 我有时发现同一个int

变量, 到达同一个点时, 在Release下的值都是很诡异的.
回复

使用道具 举报

4

主题

16

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-1-22 22:54:01 | 显示全部楼层
Release检查非常严格,是你程序的问题
回复

使用道具 举报

2

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-1-26 08:18:01 | 显示全部楼层
不见得吧, 楼上的, 试下面这个程序, Debug下报泄漏, 但Release下不会报, 所以我仍然坚持认为Release的调试有点乱七八糟.
#include <iostream>
#include <crtdbg.h>
using namespace std;

struct bit
{
        int a:3;
};
bit *F1()
{
        bit *p = new bit;
        return p;
}
bit *F2()
{
        bit *p = F1();
        return p;
}
bit *F3()
{
        bit *p = F2();
        return p;
}
int main()
{

        _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);

        F3();         //这里有内存泄漏, 改为delete F3()就OK了.

        return 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表