博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于win32 下DEBUG模式的研究
阅读量:4260 次
发布时间:2019-05-26

本文共 1633 字,大约阅读时间需要 5 分钟。

关于win32 下DEBUG模式的研究:
参考:http://www.nobugs.org/developer/win32/debug_crt_heap.html#table
http://en.wikipedia.org/wiki/Magic_number_(programming)

http://www.cnblogs.com/pcchinadreamfly/archive/2012/04/26/2471317.html等介绍:

代码如下:

#include
#include
using namespace std;int main(){ int *p=NULL; p=(int*)malloc(sizeof(int)*1); printf("%p\n",p); printf("%x\n",*(p-13)); printf("%x\n",*(p-12)); printf("%x\n",*(p-11)); printf("%x\n",*(p-10)); printf("%x\n",*(p-9)); printf("%x\n",*(p-8)); printf("%x\n",*(p-7)); printf("%x\n",*(p-6)); printf("%x\n",*(p-5)); printf("%x\n",*(p-4)); printf("%x\n",*(p-3)); printf("%x\n",*(p-2)); printf("%x\n",*(p-1)); printf("%x\n",*(p)); printf("%x\n",*(p+1)); printf("%x\n",*(p+2)); printf("%x\n",*(p+3)); printf("%x\n",*(p+4)); printf("%x\n",*(p+5)); printf("%x\n",*(p+6)); printf("%x\n",*(p+7)); printf("%x\n",*(p+8)); printf("%x\n",*(p+9)); printf("%x\n",*(p+10)); printf("%x\n",*(p+11)); printf("%x\n",*(p+12)); system("PAUSE"); return 0;}
在这个里面我申请了一个int类型的空间,然后打印出其周围的空间中的值,其结果为:

然后将其中申请空间的语句改为:p=(int*)malloc(sizeof(int)*2),相当于是申请两个int的空间,得到的结果为:

可以看到大体的字段分布和http://www.nobugs.org/developer/win32/debug_crt_heap.html#table中最后的图是对应的,这里我只是说明几点疑惑:

1、在申请两个int空间的结果中比申请1个int空间的结果在最后的两个0上面多了一个feeefeee,而且申请偶数个空间都会出现,而申请奇数个空间都不会出现;

2、从cdcdcdcd(申请的空间未初始化)向上一直数,在http://www.nobugs.org/developer/win32/debug_crt_heap.html#table最后的图中上面是有十个字节,而在这里因为我觉得第十个字节和第九个字节没什么关系,是不是在这里是数到第九个字节;

3、如果是数到第九个字节的话,那么感觉下面要数到连续的两个0后面的那个为止,如果是第十个字节,则是数到连续的两个0为止代表本部分;这和http://www.nobugs.org/developer/win32/debug_crt_heap.html#table图的下半部分也是有区别的,因为那个文章是2009年的版本,所以现在的实现是否已经出现了变化;

你可能感兴趣的文章
大数据时代的到来
查看>>
大数据时代下的NoSql
查看>>
NoSql之相逢Redis
查看>>
NoSql之深入浅出redis
查看>>
从零开始学Hadoop----初识
查看>>
从零开始学Hadoop----浅析HDFS(一)
查看>>
从零开始学Hadoop----浅析HDFS(二)
查看>>
从零开始学Hadoop----浅析HDFS(三)
查看>>
从零开始学Hadoop——浅析MapReduce(一)
查看>>
从零开始学Hadoop——浅析MapReduce(二)
查看>>
NoSql之初识HBase
查看>>
用索引来实现幂等
查看>>
大数据的仓库Hive学习(一)
查看>>
大数据的仓库Hive原理(二)
查看>>
大数据的仓库Hive原理(三)
查看>>
MyBatis的优化注意点
查看>>
String.format参加字符串拼接大比拼
查看>>
如何使用才能让缓存更高效
查看>>
MySQL提升效率之limit
查看>>
死锁剖析
查看>>