在x64系统上抛出StackOverflowException; 在x86上正常工作

Jef*_*fim 5 .net stack-overflow recursion 64-bit

这只是一个"确定"的问题..NET 4中的x64系统的递归/循环是否存在任何已知的特殊限制/错误?

我的情况非常简单 - 一个程序在任何x86系统上运行正常,但它在x64系统上崩溃与StackOverflowException(该程序包含一些xml /映射代码,包含在几个地方的递归等).

目前解决此问题的唯一方法是调用corflags /32BIT+我的程序集(程序开始正常运行).但我想知道 - 是否有任何特殊情况可以导致x64上的错误/问题?

谢谢.

bdo*_*lan 9

指针需要更多的内存来代表x64(实际上是两倍).因此,您将使用更多内存,因此深度递归可能会导致x64上的堆栈溢出早于x86上的堆栈溢出.您可能希望尝试提高堆栈限制以缓解此问题.

  • 这件事发生在我工作过的公司里......显然我是大楼里唯一一个可以解释为什么会发生这种情况的人......那些年代的C得到了回报,而他们却得到了64位. (3认同)