微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

windows debug模式下的内存默认填充

// The following values are non-zero,constant,odd,large,and atypical.
// * Non-zero values help find bugs that assume zero-filled data
// * Constant values are good so that memory filling is deterministic (to help
// make bugs reproducible). Of course,it is bad if the constant filling of
// weird values masks a bug.
// * Mathematically odd numbers are good for finding bugs assuming a cleared
// lower bit (e.g. properly aligned pointers to types other than char are not
// odd).
// * Large byte values are less typical and are useful for finding bad addresses.
// * Atypical values (i.e.,not too often) are good because they typically cause
// early detection in code.
// * For the case of the no-man's land and free blocks,if you store to any of
// these locations,the memory integrity checker will detect it.
//
// The align_land_fill was changed from 0xBD to 0xED to ensure that four bytes of
// that value (0xEDEDEDED) would form an inaccessible address outside of the lower
// 3GB of a 32-bit process address space.
static unsigned char const no_mans_land_fill{0xFD}; // Fill unaligned no-man's land
static unsigned char const align_land_fill {0xED}; // Fill aligned no-man's land
static unsigned char const dead_land_fill {0xDD}; // Fill free objects with this

static unsigned char const clean_land_fill {0xCD}; // Fill new objects with this


更多客源参考:debug_heap.cpp

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐