VS2010下Heap corruption排查一例

正在开发的一个应用程序中出现了Heap corruption报错,并且固定出现在释放一个结构指针的某一行。

该结构定义如下:

typedef struct
{
  char *file_name;
  char *attribute_summary;
  int comment_start_lineno;
  int attribute_existed;
} attributes_in_comment_t;

在debug时通过建数据断点没有查到破环这个结构数据的代码。几经试验后在上面结构中加了一个分量如下:


typedef struct
{
  char *file_name;
  char *attribute_summary;
  int comment_start_lineno;
  int attribute_existed;
  char probe[4]; //用于探查corruption
} attributes_in_comment_t;


然后在debug时对probe分量设数据断点,终于发现了对probe进行写操作的代码。原来是有一处代码把attributes_in_comment_t结构的指针当作其他类型的指针使用,所以出现了Heap corruption报错。


以上只是一个例子,不是排查Heap corruption的通用方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值