首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在x64窗口程序中选择堆栈的虚拟地址

在x64窗口程序中选择堆栈的虚拟地址
EN

Stack Overflow用户
提问于 2009-07-28 19:16:36
回答 1查看 271关注 0票数 1

我正在开发一个Windows程序代码库,到目前为止它是32位的。我正在尝试使这个代码库64位干净。在堆管理器中通过设置“AllocationPreference”注册表值来打开“自上而下”的分配非常有用,因为在这些错误中,代码会强制指针向下转换为32位值(例如整数),从而丢失x64上最重要的一半指针值。为了获得类似的调试好处,我想强制我的进程的堆栈的虚拟地址远远大于2**32。有没有办法在Windows Vista x64上做到这一点?无论如何,我使用Visual Studio2008来构建这个代码库。

EN

Stack Overflow用户

发布于 2009-07-28 21:14:53

我不确定Windows x64的情况,但我非常确定,对于任何64位应用程序,堆栈指针都已经从一个非常大的64位地址开始,应用程序代码在低地址,堆在中间的某个地方。这或多或少是进程内存的“传统”布局。我知道在我这里的MacBook上,我得到的堆栈指针地址远远超过了32位的限制。我建议您编写一个小型测试应用程序来打印出堆栈分配的变量的地址,这将为您提供堆栈在虚拟内存中所处位置的一个很好的参考点。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1196175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档