Artikel-ID: 000085301 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 13.02.2006

Warum erhalte ich einen "Stack-Overflow"-Fehler, wenn ich meine portierte Version des JAMTM Standard Test and Programming Language () Players oder Jam-STAPELPL Byte-Code Player führe?

Umgebung

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Beschreibung Wenn Sie einen "Stack-Overflow"-Laufzeitfehler erhalten, müssen Sie dem Compiler, der zum Kompilieren des Jam Player-Quellcodes verwendet wird, mitteilen, wie groß der Stack muss sein. Sowohl der Jam--Player als auch der Jam--Byte-Code-Player müssen mindestens 50.000 Byte auf dem Stapel. Einige Compiler machen ihre Standard-Stack-Größen kleiner, was zu einem anschließenden Laufzeitfehler führt.

Bei jeder Ausführung eines Programms muss das System eine bestimmte Menge an physischem Speicher bereitstellen, wobei ein Teil dieses physischen Speichers dem Stack zugewiesen ist. Dieser Stack-Speicher wird in der Regel verwendet, um die Werte verschiedener Programmvariablen zu speichern. Handhabung von Betriebssystemen Stack-Speicherzuweisung auf eine von zwei Arten: feste Stack-Größe oder dynamisch zugewiesene Stack-Größe.

In Systemen mit einer großen Speichermenge (z. B. Systemen, die unter Windows NT/95/98/2000 oder UNIX-Umgebungen ausgeführt werden), ist das System in der Regel Speicher für den Stack dynamisch zuweisen. Daher müssen Sie die für den Stack zugewiesene Menge des verfügbaren physischen Speichers nicht angeben.

In Systemen mit weniger Speicher (wie DOS oder Embedded-Prozessoren mit weniger als 64 KB adressierbarem Speicher) verfügt das Betriebssystem jedoch über einen begrenzten Speicherplatz, mit dem gearbeitet werden kann. Daher müssen Sie die Größe des physischen Speichers angeben, der für den Stack zugewiesen ist, und nur angeben, was für den Stack benötigt wird. Mit dieser direkten Spezifikation können Sie nur angeben, was für den Stack benötigt wird, und erhalten dadurch die beste Auslastung des begrenzten Speicherplatzes.

Die bereitgestellten PC- und UNIX-basierten 32-Bit-Implementierungen der Players können Stack-Speicher dynamisch zuweisen. Die PC-basierte 16-Bit-Implementierung der Players muss über die Stack-Größe verfügen, da der 16-Bit-DOS und Windows 3. x Betriebssysteme können den Stack-Platz der Anwendung bei Bedarf nicht erweitern. Kompilieren Sie bei der Portierung des Jam--Players oder des Jam-Byte-Code-Players auf einen bestimmten Mikroprozessor den Code mit den entsprechenden Stack-Speichereinstellungen.

Zugehörige Produkte

Dieser Artikel bezieht sich auf 1 Produkte

Intel® programmierbare Geräte

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.