1. ホーム
  2. windows

[解決済み] 不明なソフトウェア例外(0xc00000fd)」エラーとは何ですか、またそれを回避する方法は何ですか?

2022-03-10 08:25:36

質問事項

code_2というAHKスクリプトを作成し、コンパイルしてスタートアップフォルダに置き、コンピュータの電源を入れるたびに自動的に起動するようにしました。

このスクリプトは、ウェブサイトに新しい更新があるかどうかをチェックし、ウェブサイト上の更新が検出されるたびに、UrlDownloadToFileを使用してそれらの更新をダウンロードします。

当初は問題なく動作していたようですが、最近、スクリプトを15分ほど実行した後、パソコンから次のようなメッセージが表示されるようになりました。

C:Documents and Settings ATTENTRARIA「開始」功能表程式集(code_2.exe)。 code_2.exe - 應用程式錯誤

應用程式發生未知ソフトウェア例外 (0xc00000fd) 於位置 0x7c92eddc.

請按[確定]終止程式

請按[取消]進行程式偵錯

このメッセージの意味がわかりますか?(ここでは中国語で申し訳ありませんが、このメッセージを番号で知っている人は、内容も知っているはずだと思うのですが...)

ともあれ、翻訳されたメッセージはこちらです。

<ブロッククオート

C:\Documents and SettingsAdministratorStart MenuProgramsStartup: code_2.exe - Application Error

アプリケーションの場所0x7c92eddcで未知のソフトウェア例外(0xc00000fd)が発生しました。

OKをクリックし、プログラムを終了します

CANCELをクリックすると、デバッグが始まります。

解決方法は?

0xc00000fdはスタックオーバーフロー例外(http://support.microsoft.com/kb/315937)だと思います。 あなたのスクリプトを見ないと、何が問題なのかはっきりしませんが、この種のことは一般的に深く再帰することによって起こります。 スクリプトに再帰的な関数がないか確認し、深すぎる深さに到達する前に終了していることを確認する必要があります。

実際にスタックに割り当てすぎている可能性があります。 私はAHKに詳しくないのですが、コンパイラが大量のデータ(おそらくローカル変数)をスタックに割り当てている可能性もあります。 大量の(あるいは大きな)ローカル変数を定義した場合、このようなことが起こる可能性があります。

また、スタックやメモリが何らかの原因で破損している可能性もありますが、スクリプト言語を使用している場合はその可能性は低いと思われます。 スクリプト言語からネイティブAPIにアクセスする場合、その方法によっては可能性が高くなるかもしれません。

最後に提案する可能性は、あなたが何らかのAPIを呼び出していて、それが大量のスタックスペースを確保する原因になっていることです。 繰り返しになりますが、より詳細な情報(特に例外が発生したときに何をしているのか)がわからないと、確かなことは言えません。

他の理由も考えられるが、可能性はさらに低くなる。