处理完成,退出代码为-1073741571

时间:2013-12-17 08:12:09

标签: python recursion error-code

我有一个递归函数,它正在寻找欧拉路径。我不认为函数的定义是相关的(但如果有人这么认为,我也会粘贴它。)

问题是当我运行带有大图的函数时,我收到以下众所周知的错误:RuntimeError: maximum recursion depth exceeded in cmp

即使没有上述问题,我也知道我需要使用以下命令增加递归限制

import sys
sys.setrecursionlimit(5000)

问题在于,无论我使用的是什么号码,我都会得到最大递归错误或我的程序暂停,屏幕上没有输出但是:处理完成后退出代码-1073741571 。我试图谷歌这个代码,我能找到的唯一问题是Ruby中的问题。知道如何克服这个问题。

如果这是相关的我在Windows 8 64位,我有足够的RAM,我有64位python。

仅仅因为某些原因这个问题最近引起了一些关注,我想强调一点,我无法找到问题的解决方案。在无可救药地试图解决问题之后,我放弃了并且在没有递归的情况下重写了它。这也很烦人,但是我花了很少的时间重写整个算法,而不是我花在调查这个问题上。我还想提一下,我没有以前的递归代码,所以我无法复制问题。

2 个答案:

答案 0 :(得分:6)

您可以使用以下内容:

if __name__ == '__main__':
    sys.setrecursionlimit(100000)
    threading.stack_size(200000000)
    thread = threading.Thread(target=your_code)
    thread.start()

这解决了我的递归限制和我的堆大小限制。

答案 1 :(得分:4)

这是Microsoft"堆栈溢出/堆栈耗尽的签名整数表示"错误代码0xC00000FD。

您可以尝试增加可执行文件的堆栈大小,如答案中所述:How to overcome Stack Size issue with Visual Studio (running C codes with big array)

任何时候你在Windows中看到奇怪的,大的负退出代码,将它们转换为十六进制,然后在ntstatus错误代码http://msdn.microsoft.com/en-us/library/cc704588.aspx中查找它们