記事 ID: 000085301 コンテンツタイプ: トラブルシューティング 最終改訂日: 2006/02/13

移植版の JamTM 標準テストおよびプログラミング言語 (STAPL) プレーヤーまたは Jam STAPL バイトコード・プレーヤーを実行すると、「スタック・オーバーフロー」エラーが発生するのはなぜですか?

環境

BUILT IN - ARTICLE INTRO SECOND COMPONENT
詳細 「スタック・オーバーフロー」ランタイム・エラーが発生した場合は、Jam Player のソースコードのコンパイルに使用したコンパイラーに大きさを指示する必要があります。 スタックが必要です。Jam STAPL プレーヤーと Jam STAPL バイトコード・プレーヤーの両方が、50,000 バイト以上を スタック。一部のコンパイラーでは、デフォルトのスタックサイズをこれより小さくしているため、ランタイムエラーが発生します。

プログラムを実行するたびに、システムはスタックに割り当てられた物理メモリーの一部を備えた一定量の物理メモリーを提供する必要があります。このスタックメモリーは、通常、さまざまなプログラム変数の値を格納するために使用されます。オペレーティング・システムの処理 スタック・メモリーの割り当て方法は、固定スタックサイズまたは動的に割り当てられたスタックサイズの 2 つの方法のいずれかです。

大量のメモリーを搭載したシステム (Windows NT/95/98/2000 または UNIX 環境で実行しているシステムなど) では、通常、システムは スタックにメモリーを動的に割り当てます。そのため、スタックに割り当てられる利用可能な物理メモリーの量を指定する必要はありません。

しかし、メモリーが少ないシステム (DOS や 64K 未満のアドレス指定可能メモリーを搭載したエンベデッド・プロセッサーなど) では、オペレーティング・システムは動作するメモリースペースを制限しています。そのため、スタックに割り当てられる物理メモリーのサイズを指定し、スタックに必要なもののみを指定する必要があります。この直接の仕様では、スタックに必要なもののみを指定できます。 限られたメモリー領域の使用率を最大限に高めます。

提供される PC ベースおよび UNIX ベースの 32 ビット実装の Players は、スタックメモリーを動的に割り当てることができます。PC ベースの 16 ビット版のプレーヤーの実装は、16 ビット DOS と Windows 3 であるため、スタックサイズを指定する必要があります。x オペレーティング・システムでは、アプリケーションのスタック領域をオンデマンドで拡張することはできません。Jam STAPL Player または Jam STAPL バイトコードプレーヤーを特定のマイクロプロセッサーに移植する場合、適切なスタックメモリー設定を使用してコードをコンパイルします。

関連製品

本記事の適用対象: 1 製品

インテル® プログラマブル・デバイス

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。