Den Stack untersuchen.
Sébastien Granjoux
seb.sfo@free.fr
Philip Chimento
philip.chimento@gmail.com
Mario Blättermann
mario.blaettermann@gmail.com 2009-2013
Jonas Rebmann
jonas.rebmann@googlemail.com 2010
Christian Kirbach
christian.kirbach@gmail.com 2010, 2011, 2012, 2013, 2015

# Stack

# Stack-Frames auflisten

Ein Stack-Frame ist der Bereich des Stacks, der einem Funktionsaufruf zugeordnet ist. Es werden alle Funktionen und deren Aufrufargumente in der Aufrufreihenfolge aufgeführt. Jeder Stack-Frames ist beginnend mit 0 ab der aktuellen Funktion nummeriert. Die Stack-Frames werden nur angezeigt, während die Fehlerdiagnose läuft.

Ein Programm kann aus mehreren Threads bestehen. Alle diese Threads werden unabhängig voneinander ausgeführt, mit eigenen Registern, Stacks und lokalen Variablen, aber mit gemeinsamen globalen Variablen.

Wählen Sie AnsichtStack im Hauptmenü, um das Fenster Stack zu öffnen.

Die Stacks werden in einer Baumansicht dargestellt, jeweils mit dem zugehörigen Thread übergeordnet. Die folgenden Informationen werden angezeigt:

## Aktiv

Der gelbe Pfeil repräsentiert den aktiven Stack-Frame. Laut Vorgabe ist dies Frame 0, d.h. die aktuelle Funktion. Alle Auswertungen und lokalen Variablen sind relativ zu diesem aktiven Frame. Wechseln Sie den aktuellen Stack-Frame, um lokale Variablen anderer Funktionen zu untersuchen.

## Thread

Eine Nummer, korrespondierend zu jedem Thread.

## Frame

Dies ist die Frame-Nummer, beginnend mit 0 für die aktuelle Funktion. Die erste Funktion Ihres Programms (z.B. `main()` in einem C-Programm) hat die höchste Nummer.

## Datei

Der Name der Datei, welche die Funktion des aktuellen Threads enthält.

## Zeile

Die Zeilennummer der Funktion, die diesem Frame entspricht.

## Funktion

Der Name der Funktion, welche diesem Frame entspricht.

## Adresse

Die Adresse der Funktion, welche diesem Frame entspricht.

## Argumente

Die Funktionsargumente.

# Den aktuellen Stack-Frame oder Thread wechseln

Wählen Sie im Fenster Stack den gewünschten Frame aus.

Drücken Sie die rechte Maustaste und wählen Sie Aktuellen Frame auswählen.

Ein Klick auf einen Stack-Rahmen im selben Thread wechselt nur den Stack-Rahmen, so dass andere lokale Variablen untersucht werden können. Wird dies in einem anderen Thread getan, so ändern sich sowohl der Stack-Rahmen als auch der Thread. Die Registerwerte werden andere sein und die Fehlerdiagnose wird im gewählten Thread neu gestartet.

# Die aktuelle Funktion betrachten

Wählen Sie im Fenster Stack den gewünschten Frame aus.

Klicken Sie zweimal, oder drücken Sie die rechte Maustaste und wählen Sie Quelle anzeigen.

# Stacktrace ermitteln

Klicken Sie mit der rechten Maustaste in das Stack-Fenster und wählen Sie Stacktrace holen.