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

时间:2012-03-07 06:54:48

标签: .net recursion 64-bit stack-overflow

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

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

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

感谢。

1 个答案:

答案 0 :(得分:9)

指针需要更多内存来表示x64(实际上是两倍)。因此,您将使用更多内存,因此深度递归可能会导致x64上的堆栈溢出早于x86上的堆栈溢出。您可能需要尝试使用raising the stack limit来缓解此问题。