<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" type="topic" style="task" id="debug-stack" xml:lang="de">

  <info xmlns:facet="http://projectmallard.org/facet/1.0/">
    <facet:tag key="all-pages" value="whatever"/> <!--Include page in index-->
    <link type="guide" xref="debug-data" group="fourth"/>
    <revision pkgversion="3.0" version="0.1" date="2011-03-27" status="incomplete"/>
    <desc>Den Stack untersuchen.</desc>
    <credit type="author">
      <name>Sébastien Granjoux</name>
      <email>seb.sfo@free.fr</email>
    </credit>
    <credit type="editor">
      <name>Philip Chimento</name>
      <email>philip.chimento@gmail.com</email>
    </credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Mario Blättermann</mal:name>
      <mal:email>mario.blaettermann@gmail.com</mal:email>
      <mal:years>2009-2013</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Jonas Rebmann</mal:name>
      <mal:email>jonas.rebmann@googlemail.com</mal:email>
      <mal:years>2010</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Christian Kirbach</mal:name>
      <mal:email>christian.kirbach@gmail.com</mal:email>
      <mal:years>2010, 2011, 2012, 2013</mal:years>
    </mal:credit>
  </info>

  <title>Stack</title>

  <section>
    <title>Stack-Frames auflisten</title>

    <p>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.</p>

    <p>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.</p>

    <steps>
      <item>
        <p>Wählen Sie <guiseq><gui>Ansicht</gui><gui>Stack</gui></guiseq> im <gui>Hauptmenü</gui>, um das Fenster <gui>Stack</gui> zu öffnen.</p>
      </item>
    </steps>

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

    <terms>
      <item>
        <title>Aktiv</title>
        <p>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.</p>
      </item>
      <item>
        <title>Thread</title>
        <p>Eine Nummer, korrespondierend zu jedem Thread.</p>
      </item>
      <item>
        <title>Frame</title>
        <p>Dies ist die Frame-Nummer, beginnend mit 0 für die aktuelle Funktion. Die erste Funktion Ihres Programms (z.B. <code>main()</code> in einem C-Programm) hat die höchste Nummer.</p>
      </item>
      <item>
        <title>Datei</title>
        <p>Der Name der Datei, welche die Funktion des aktuellen Threads enthält.</p>
      </item>
      <item>
        <title>Zeile</title>
        <p>Die Zeilennummer der Funktion, die diesem Frame entspricht.</p>
      </item>
      <item>
        <title>Funktion</title>
        <p>Der Name der Funktion, welche diesem Frame entspricht.</p>
      </item>
      <item>
        <title>Adresse</title>
        <p>Die Adresse der Funktion, welche diesem Frame entspricht.</p>
      </item>
      <item>
        <title>Argumente</title>
        <p>Die Funktionsargumente.</p>
      </item>
    </terms>

  </section>


  <section>
    <title>Den aktuellen Stack-Frame oder Thread wechseln</title>

    <steps>
      <item>
        <p>Wählen Sie im Fenster <gui>Stack</gui> den gewünschten Frame aus.</p>
      </item>
      <item>
        <p>Drücken Sie die rechte Maustaste und wählen Sie <gui>Aktuellen Frame auswählen</gui>.</p>
      </item>
    </steps>

    <p>Clicking on a stack frame in the same thread changes only the
    stack frame, allowing to see other local variables. But doing it
    in another thread will change both the stack frame
    and the thread. The register values will be different and the
    debugger will restart in the selected thread.</p>
  </section>


  <section>
    <title>Die aktuelle Funktion betrachten</title>

    <steps>
      <item>
        <p>Wählen Sie im Fenster <gui>Stack</gui> den gewünschten Frame aus.</p>
      </item>
      <item>
        <p>Klicken Sie zweimal, oder drücken Sie die rechte Maustaste und wählen Sie <gui>Quelle anzeigen</gui>.</p>
      </item>
    </steps>
  </section>


  <section>
    <title>Stacktrace ermitteln</title>
 
    <steps>
      <item>
        <p>Klicken Sie mit der rechten Maustaste in das <gui>Stack</gui>-Fenster und wählen Sie <gui>Stacktrace holen</gui>.</p>
      </item>
    </steps>
  </section>


</page>
