什么是"未知软件异常(0xc00000fd)"错误以及如何避免它?

bri*_*ant 7 windows winapi exception

我创建了一个名为code_2的AHK脚本,将其编译并放入我的Startup文件夹中,这样每次打开计算机时它都会自动开始运行.

该脚本会检查网站是否有新的更新,每当检测到网站上的更新时,它都会使用UrlDownloadToFile下载这些更新.

起初脚本似乎工作正常,但最近我的脚本运行大约15分钟后,我开始从我的计算机收到以下消息:

C:\ Documents and Settings\Administrator\???????\???\??\code_2.exe:code_2.exe - ??????

???????? 未知的软件异常(0xc00000fd)??? 0x7c92eddc?

?? [??] ????

?? [??] ??????

知道这条消息是什么意思吗?(对不起,这里的中国人,但我认为,如果你知道它的数量这条消息,你应该熟悉的内容.)

无论如何,这是翻译的消息:

C:\ Documents and Settings\Administrator\Start Menu\Programs\Startup\code_2.exe:code_2.exe - 应用程序错误

在未知软件异常(0xc00000fd)发生在位置0x7c92eddc应用.

单击OK以终止程序
单击CANCEL以调试程序

小智 16

我相信0xc00000fd是一个堆栈溢出异常(http://support.microsoft.com/kb/315937).没有看到你的脚本,很难确定出现了什么问题,但这种事情通常是由于递归太深造成的.我会检查你的脚本是否有任何递归函数,并确保它们在达到太深的深度之前就已经退出了.

你可能实际上在堆栈上分配了太多.我不熟悉AHK,但编译器也可能在堆栈上分配大量数据(可能是局部变量).如果定义了大量(或许多大)局部变量,则可能会发生这种情况.

堆栈/内存也可能以某种方式被破坏,尽管在使用脚本语言时似乎不太可能出现这种情况.从脚本语言访问本机API时可能更有可能,具体取决于如何完成.

我将在这里建议的最后一个可能性是你正在调用一些API并导致它分配大量的堆栈空间,可能是通过传入错误的参数.同样,在不知道更多细节的情况下(尤其是当它遇到异常时它正在做什么),很难肯定地说.

我可以想到其他一些原因,但它们的可能性更小.

  • 谢谢你!我认为重复咒骂得太深是我的问题。 (2认同)