Show TOC

Arbeiten mit Memory Object Explorer im neuen ABAP DebuggerLocate this document in the navigation structure

Verwendung

Mit Memory Object Explorer sehen Sie, wie die Speicherobjekte in dem Programm in der aktiven Debugging-Sitzung miteinander in Beziehung stehen.

Die Speicherobjekte in einem Programm sind miteinander verknüpft und bilden ein Netz oder einen Graphen. Auf der obersten Ebene befinden sich Speicherobjekte, die von Variablen des laufenden Programms referenziert werden. Diese Objekte können Variablen oder Attribute besitzen, die auf andere Speicherobjekte verweisen. Untergeordnete Objekte wiederum können auf andere Speicherobjekte verweisen.

Abbildung 1: Navigieren in Memory Object Explorer

Mit Memory Object Explorer können Sie im Graphen der Speicherobjekte navigieren. Sie können von jeder beliebigen Variable aus starten, die im Programm in der aktuellen Debugging-Sitzung verwendet wird. Mit Hilfe von Memory Explorer können Sie dann:

  • Vom Speicherobjekt aus nach oben navigieren, um die übergeordneten Objekte zu sehen. Hierbei handelt es sich um Variablen, die auf das Speicherobjekt verweisen.

  • Vom Speicherobjekt aus nach unten navigieren, um die untergeordneten Objekte zu sehen. Das Objekt im Fokus enthält Attribute oder Variablen, die auf die untergeordneten Objekte verweisen.

  • Den Inhalt eines beliebigen Speicherobjekts anzeigen. Beispielsweise sehen Sie die Zeilen in einer internen Tabelle oder die Attribute in einer Instanz einer ABAP-Klasse.

Starten von Memory Object Explorer

Um Memory Object Explorer vom Einstiegsbild des neuen ABAP Debugger aus zu starten, gehen Sie wie folgt vor:

  1. In der Drucktastenleiste an der rechten Seite des Debugger-Fensters wählen Sie Ersetze Werkzeug.

  2. Auf dem nachfolgenden Dialogfenster öffnen Sie Speicherverwaltung.

  3. Wählen Sie Memory Object Explorer.

Nachverfolgen von Referenzen mit Memory Object Explorer

Memory Object Explorer ist das ideale Werkzeug zur Speicheranalyse, um die Referenzen von einem Speicherobjekt zu einem anderen nachzuverfolgen.

Wenn sich der Speicherverbrauch in Ihrem Programm ändert und Sie nicht nachvollziehen können, warum oder wie die Änderung erfolgt ist, müssen Sie häufig die Referenzen zwischen Speicherobjekten nachverfolgen, um zu erkennen, wie sie gemeinsam genutzt werden, welche Variablen Referenzen auf die Objekte halten und welchen Inhalt die einzelnen Speicherobjekte haben.

Beispielsweise tritt ein sprunghafter Anstieg im Speicherverbrauch oft dann auf, wenn ein bisher gemeinsam genutztes Wertesemantikobjekt wie eine interne Tabelle nicht mehr gemeinsam genutzt wird. Um nachvollziehen zu können, wo und wie das gemeinsam genutzte Speicherobjekt kopiert werden musste, müssen Sie eventuell die Referenzen im Speicherobjektgraphen genau analysieren.

Abbildung 2: Volle Sichtbarkeit von Referenzen in Memory Object Explorer

Am deutlichsten treten die Vorteile von Memory Object Explorer bei der Nachverfolgung von Referenzen und der Analyse von Änderungen im Speicherobjektgraphen hervor, wenn Sie ihn mit anderen Werkzeugen vergleichen:

  • Memory Object Explorer unterscheidet sich von der Dominatorbaumsicht dahingehend, dass Sie im kompetten Graphen der Speicherobjekte navigieren können.

    Im Dominatorbaum werden Hierarchien nur aufgebaut, um exklusive Referenzen eines übergeordneten Objekts auf ein gebundenes untergeordnetes Objekt zu zeigen. Alle anderen Objekte erscheinen einfach als Objekte der obersten Ebene. Dies ist aber nicht ausreichend, um das Netz der Speicherreferenzen abzubilden oder analysieren zu können.

  • Memory Object Explorer unterscheidet sich von der Speicherobjektliste dahingehend, dass in der Speicherobjektansicht alle Objekte so dargestellt werden, als befänden sie sich auf einer einzigen Hierarchiestufe.

    Die Liste zeigt zwar die Referenzen auf die einzelnen Objekte, aber wenn Sie den Graphen bzw. das Netz der Speicherobjekte analysieren möchten, müssen Sie die Referenzen von Objekt zu Objekt manuell nachverfolgen.