Skip to main content

Registerkarte: Stackverbrauch

Registerkarte im Taskkonfigurations-Editor

Die Registerkarte Stackverbrauch zeigt den aktuellen Stackverbrauch für jede Applikation, für jede Task und für die Programmierbausteine im maximalen Aufrufbaum an.

Voraussetzung, dass die Informationen angezeigt werden: Der Applikationcode wurde erzeugt. Dies erfolgt entweder automatisch beim Einloggen auf die Steuerung oder explizit durch den Befehl ErstellenCode erzeugen.

Standard-Stackgröße aus dem Zielsystem überschreiben

Wichtig

Das Überschreiben der Stackgröße in Verfügbare Stackgröße ist eine Expertenfunktion.

Dieses Eingabefeld ist nur verfügbar, wenn Sie die Option hier aktivieren und die anschließend erscheinende Meldung bestätigen. Die Meldung weist darauf hin, dass die Gefahr eines Stack-Überlaufs bestehen kann. Es können Ausnahmefehler auftreten.

_cds_icon_option_deactivated.png: Das Eingabefeld Verfügbare Stackgröße zeigt den aktuell eingestellten Standard-Stackgröße aus der Gerätebeschreibung an. Eine Eingabe ist nicht erlaubt. Defaulteinstellung.

_cds_icon_option_activated.png: Das Eingabefeld Verfügbare Stackgröße ist editierbar. Sie können dort einen neuen Wert eingeben oder auf den Standardwert zurücksetzen.

_cds_icon_taskconfiguration_stackusage_reset.png Zurücksetzen auf Standard

Bei Klick auf die Schaltfläche wird der Wert in Verfügbare Stackgröße auf die Standard-Stackgröße zurückgesetzt. Die Standard-Stackgröße ist in der Gerätebeschreibung definiert.

Verfügbare Stackgröße

Verfügbare Stackgröße in Bytes

Beispiel: 4.194.304

In der Gerätebeschreibung ist die maximale Stackgröße angegeben. Diese Standard-Stackgröße wird ausgelesen und als verfügbare Stackgröße übernommen.

Sie können den Wert ändern, wenn die Option Standard-Stackgröße aus dem Zielsystem überschreiben aktiviert ist.

Der Compiler prüft während der Kompilierung den maximalen Stackverbrauch in der Applikation und meldet anhand dieser berechneten Größe einen Fehler, wenn ein Überlauf möglich ist.

Angenommene Stackgröße für externe Aufrufe

Stackgröße in Bytes, die für externe Aufrufe ins Laufzeitsystem angenommen wird

Beispiel: Wenn hier 24 steht, wird angenommen, dass ein Aufruf einer externen Funktion 24 Byte auf dem Stack verbraucht

Hinweis: Das Ergebnis der Berechnung des Stackverbrauchs ist immer eine Schätzung.

In der Gerätebeschreibung ist ein allgemeiner Schätzwert für die Stackgröße eines externen Aufrufs angegeben. Dieser Wert wird für die Berechnung verwendet. Es sei denn, einem externen Aufruf wurde mit dem Attribut 'estimated-stack-usage' ein spezieller Schätzwert zugewiesen. In diesem Fall wird der spezielle Wert bevorzugt.

Task/Maximaler Aufrufbaum

Beim Kompilieren ermittelter Aufrufbaum (Aufrufhirarchie)

Tipp: Wenn in dieser Ansicht der Aufrufbaum leer ist, können Sie einen Kompiliervorgang starten und den Befehl ErstellenCode erzeugen aufrufen. Danach stehen Ihnen die aktuellen Informationen zum Stackverbrauch zur Verfügung.

Stackgröße

Genutzte Stackgröße in Bytes pro aufgerufenem Programmierbaustein

Oder über die Aufrufhierarchie aufsummierte Stackgröße bei einer Task

Der Compiler berechnet während der Kompilierungszeit den maximalen Stackverbrauch bei maximaler Aufrufkette.

Wichtig: Wenn ein Programmierbaustein rot dargestellt ist, dann bedeutet das, dass bei diesem Baustein ein Stacküberlauf ermittelt wurde. Die nachfolgenden Programmierbausteine sind wegen Speicherüberlauf ebenfalls in rot dargestellt.

Für weitere Informationen siehe: Berechnung des Stackverbrauchs