windows 什么是“未知软件异常(0xc00000fd)”错误以及如何避免它?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/7763959/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
What is "unknown software exception (0xc00000fd)" error and how to avoid it?
提问by brilliant
I have created an AHK script named code_2, compiled it and placed it into my Startup folder so that it would automatically start running each time I turn on the computer.
我创建了一个名为 code_2 的 AHK 脚本,对其进行编译并将其放入我的 Startup 文件夹中,这样每次打开计算机时它都会自动开始运行。
The script checks a website for new updates and whenever an update on the website is detected, it downloads those updates using UrlDownloadToFile.
该脚本会检查网站是否有新的更新,每当检测到网站上的更新时,它就会使用 UrlDownloadToFile 下载这些更新。
At first the script seemed to work fine, but recently I started receiving the following messages from my computer after my script has been running for about 15 minutes:
起初脚本似乎工作正常,但最近我的脚本运行了大约 15 分钟后,我开始从我的计算机收到以下消息:
C:\Documents and Settings\Administrator\「開始」功能表\程式集\啟動\code_2.exe: code_2.exe - 應用程式錯誤
應用程式發生例外 unknown software exception (0xc00000fd) 於位置 0x7c92eddc。
請按 [確定] 終止程式
請按 [取消] 進行程式偵錯
C:\Documents and Settings\Administrator\「开始」功能表\程序集\启动\code_2.exe: code_2.exe - 应用程序错误
应用程序发生未知软件异常 (0xc00000fd) 于位置 0x7c92eddc。
请按[确定]终止程序
请按[取消]进行程序侦错
Any idea what this message is all about? (Sorry for the Chinese here, but I'd think that if you know this message by its number, you should be familiar with the contents.)
知道这条消息是关于什么的吗?(对不起这里的 CN 人,但我想如果你知道这个消息的编号,你应该熟悉它的内容。)
Anyway, here is the translated message:
无论如何,这是翻译后的消息:
C:\Documents and Settings\Administrator\Start Menu\Programs\Startup\code_2.exe: code_2.exe - Application Error
The exception unknown software exception (0xc00000fd) occurred in the application at location 0x7c92eddc.
Click on OK to terminate the program
Click on CANCEL to debug the program
C:\Documents and Settings\Administrator\Start Menu\Programs\Startup\code_2.exe:code_2.exe - 应用程序错误
异常未知软件异常 (0xc00000fd) 发生在位置 0x7c92eddc 的应用程序中。
点击 OK 终止程序
点击 CANCEL 调试程序
回答by user995048
I believe that 0xc00000fd is a stack overflow exception (http://support.microsoft.com/kb/315937). Without seeing your script, it is hard to say for sure what is going wrong, but this sort of thing is generally caused by recursing too deeply. I would check your script for any recursive functions and make sure that they are exiting before reaching too great a depth.
我相信 0xc00000fd 是堆栈溢出异常 (http://support.microsoft.com/kb/315937)。没有看到你的脚本,很难确定哪里出了问题,但这种事情通常是由于递归太深造成的。我会检查您的脚本是否有任何递归函数,并确保它们在达到太大深度之前退出。
It's possible you're actually allocating too much on the stack. I'm not familiar with AHK, but it's possible the compiler is allocating a large amount of data (probably local variables) on the stack, too. If you define a large number of (or a number of large) local variables, this could happen.
您实际上可能在堆栈上分配了太多。我不熟悉 AHK,但编译器也可能在堆栈上分配大量数据(可能是局部变量)。如果您定义了大量(或大量)局部变量,则可能会发生这种情况。
It's also possible that the stack/memory is somehow getting corrupted, although this seems less likely to be the case when using a scripting language. It might be more likely when accessing native API from a scripting language, depending on how that is done.
堆栈/内存也有可能以某种方式损坏,尽管在使用脚本语言时这种情况似乎不太可能发生。从脚本语言访问本机 API 时可能更有可能,具体取决于如何完成。
The last possiblity I'm going to suggest here is that you're calling some API and causing it to allocate a lot of stack space as well, possibly by passing in bad parameters. Again, without knowing more specifics (especially what it's doing when it hits that exception), it's hard to say for sure.
我要在这里建议的最后一种可能性是您正在调用一些 API 并导致它也分配大量堆栈空间,可能是通过传入错误参数。同样,在不知道更多细节的情况下(尤其是在遇到该异常时它在做什么),很难确定。
I can think of some other reasons, but they're even less likely.
我可以想到其他一些原因,但它们的可能性更小。