Tag: virtualalloc

立即检测Windows上的堆损坏错误。 怎么样?

我无法入睡! 🙂 我在Windows上有一个相当大的项目,遇到了一些堆损坏问题。 我已阅读所有SO,包括这个好主题: 如何调试堆损坏错误? 但是没有什么比开箱即用更能帮助我了。 Debug CRT和BoundsChecker检测到堆损坏,但地址始终不同,检测点总是远离实际的内存覆盖。 我没有睡到半夜,并制作了以下黑客: DWORD PageSize = 0; inline void SetPageSize() { if ( !PageSize ) { SYSTEM_INFO sysInfo; GetSystemInfo(&sysInfo); PageSize = sysInfo.dwPageSize; } } void* operator new (size_t nSize) { SetPageSize(); size_t Extra = nSize % PageSize; nSize = nSize + ( PageSize – Extra ); return Ptr = […]