【发布时间】:2009-07-28 19:16:35
【问题描述】:
我正在开发一个迄今为止一直是 32 位的 Windows 程序代码库。我正在尝试使这个代码库 64 位干净。通过设置“AllocationPreference”注册表值在堆管理器中打开“自上而下”分配非常有助于发现代码错误地将指针强制向下转换为 32 位值(如整数)并返回,从而丢失x64 上指针值的最高有效一半。为了获得类似的调试好处,我想强制我的进程的堆栈虚拟地址远高于 2**32。有没有办法在 Windows Vista x64 上做到这一点?对于它的价值,我正在使用 Visual Studio 2008 来构建这个代码库。
【问题讨论】:
-
如何开启“top down heap manager”?
-
为什么不启用警告并在编译时修复它们?