由HEAP Corruption DETECTED查到的
我new CSocketThread类,然后在退出时delete this;
VC2005 Debug模式运行时报HEAP Corruption DETECTED。。。。。错误,就在delete this那里,从新运行程序并在new的地方和delete this那里下断点,发现在DEBUG模式下在堆中new对象时C++编译器会在new到的指针前后各放4字节的0xFD,在delete时检查前后的值是否为0xFD,如果不为0xFD则出现内存溢出。有问题就跟踪到C++的源码中去,你会发现很多平常调试时学不到的东西.
虽然发现这个“密秘”了,但是我的问题还是没有解决,再跟踪,我发现在new对象时,new完(也就是构造函数执行完了),我看了一下new返回的指针前后的内存数据,尾部的前面3个0xFD被清0了,OK,再重新运行,跟入到构造函数中去,发现在对一个成员变量进行清0时,会碰到那3个值,很奇怪,在内部对成员变量进行赋值操作会改到内存以外的值。。。郁闷中。。。百思不得其解,后来sizeof了类的大小,发现不是默认的4字节对齐,在类中,有几个成员变量,都是DWORD的,要不就是指针,只有一个BYTE成员,就出在这个BYTE成员上,找了老长时间的问题终于找到了,总算安心了。睡了,有写的了再写。。。
转载于:https://www.cnblogs.com/Leejia/archive/2008/01/21/1046646.html
由HEAP Corruption DETECTED查到的相关推荐
- C语言Free时报错HEAP CORRUPTION DETECTED
char *k1; k1 = (char *) malloc(4*sizeof(char)); v1 = (char *) malloc(4*sizeof(char)); strcpy(k1,&qu ...
- C++debug调试出现heap corruption detected: after normal block 可能的原因
最近在刷C++题目的代码,在刷题过程中出现了 heap corruption detected: after normal block 这种错误出现的概率应该还是蛮高的: 这是典型的内存溢出错误,常在 ...
- C语言错误: HEAP CORRUPTION DETECTED
程序源代码: //写文件两种方式(文本文件和二进制文件)#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdl ...
- signal 6 (SIGABRT), code -6 (SI_TKILL) Abort message: ‘stack corruption detected (-fstack-protector
在测试调用native的rw_i93.cc文件的rw_i93_sm_format函数时,出现程序crash,报错信息如下 12-18 11:19:39.056 1453 2114 I WifiSt ...
- C++中Delete时堆错误(Heap Corruption)的原因
最近这三四天一直在跟一个bug做斗争:程序在运行过程中死掉,Output窗口显示: 1.Windows has triggered a breakpoint in ***, This may be d ...
- 调用dll时出现“Unhandled exception 堆已损坏(heap corruption)“异常解决方法
转自:http://blog.sina.com.cn/s/blog_668aae780101iou9.html http://yaogangshi.iteye.com/blog/1001690 htt ...
- 数据结构 严薇敏 顺序表的实现(增 删 改)及其使用方法详解
时间复杂度 数据结构 时间复杂度和空间复杂度 目录 1.线性表 2.顺序表 2.1概念及结构 2.2 接口实现 SeqList.h SeqList.c 2.2.1初始化链表以及销毁链表的实现 初始化顺 ...
- GFlags调试堆中野指针
我个人觉得写代码最悲哀的就是,程序的出错结果往往出人意料,并不在自己预期的错误列表中,其中堆中的野指针就是一个很隐蔽的问题.记得之前写了一个模块,后来因为功能升级,而修改了部分接口,等到运行的时候,老 ...
- Qt开发奇葩问题总集
Qt开发奇葩问题总集[持续更新中] 文章目录 Qt开发奇葩问题总集[持续更新中] 说明: 使用 QColorDialog 控制台出现提示 :x: Qt 运行程序控制台 自动输出 CUserInputP ...
最新文章
- sscanf用法总结
- 学习 Message(14): 区分左右 Shift、Ctrl、Alt
- raptor五个数排序流程图_数据结构与算法(一):排序(上)
- 一篇文章教你学会Java泛型
- mysql 线程池 下载_java线程池实现批量下载文件
- netstat(win)
- 云计算介绍-1.2,IaaS\PaaS\SaaS比较
- 坦克位置伺服系统分析与设计_伺服电机噪音及不稳定分析
- 关于禅道项目管理软件
- CAD:计算三角形的外接圆圆心
- 带宽与响应速度的关系
- [linux] grep -rn 当前目录搜索字符串
- 英特尔奔腾芯片漏洞_什么是奔腾(英特尔)?
- 【JY】橡胶支座精细化模拟与有限元分析注意要点
- python中小数点后取2位(四舍五入)以及取2位(四舍五不入)的方法总结
- centos 一键卸载Openstack
- 钉钉更新后,钉钉回放视频python下载
- inherit和initial:两个特殊的css值
- Webapck 体系基础
- 物联网在智慧农业中的应用