Der CRT-Debugheap

Aktualisiert: November 2007

Dieses Thema gilt für folgende Anwendungsbereiche:

Edition

Visual Basic

C#

C++

Web Developer

Express

Nur "Systemeigen"

Standard

Nur "Systemeigen"

Pro und Team

Nur "Systemeigen"

Tabellenlegende:

Vorhanden

Nicht vorhanden

Befehl oder Befehle, die standardmäßig ausgeblendet sind.

Dieser Abschnitt umfasst eine detaillierte Erläuterung des CRT‑Debugheaps.

In diesem Abschnitt

  • Speicherverwaltung und Debugheap
    Hier werden die Debugversionen von Heapfunktionen beschrieben. Durch diese Funktionen werden zwei der schwierigsten Speicherreservierungsprobleme behoben: das Überschreiben eines reservierten Pufferendes und Speicherverluste (wobei nicht mehr benötigte Reservierungen nicht mehr freigegeben werden können).

  • Blocktypen auf dem Debugheap
    Hier werden die fünf Reservierungstypen beschrieben, denen Speicherblöcke im Debugheap zugewiesen werden. Die Reserverierungstypen werden abhängig von der jeweiligen Aufgabe, z. B. Erkennung von Speicherverlusten und Erstellung von Zustandsberichten, auf unterschiedliche Weise nachverfolgt und ausgegeben.

  • Der Debugheap
    Enthält Informationen zur Verwendung des Debugheaps. Behandelte Themen: Welche Aufrufe werden zu Debugversionen aufgelöst, was geschieht, wenn ein Speicherblock freigegeben wird, auf welche Debugfeatures muss innerhalb des Codes zugegriffen werden, das Ändern des _crtDbgFlag-Bitfelds zum Erstellen eines neuen Flagzustands sowie ein Codebeispiel, das die Aktivierung der automatischen Speicherverlusterkennung und das Deaktivieren der _CRT_BLOCK-Prüfung veranschaulicht.

  • Der Debugheap in C++
    Hier werden die Debugversionen der C++Operatoren new und delete sowie die Auswirkungen der Verwendung von _CRTDBG_MAP_ALLOC beschrieben.

  • Berichtsfunktionen für den Heapzustand
    Hier wird die _CrtMemState-Struktur erläutert, mit der Sie einen zusammenfassenden Snapshot des Heapzustands aufzeichnen können. In diesem Abschnitt werden außerdem die CRT-Funktionen aufgelistet, die den Heapzustand und -inhalt dokumentieren sowie Speicherverluste und andere Probleme erkennen.

  • Nachverfolgen von Heapreservierungsanforderungen
    Hier werden Möglichkeiten aufgezeigt, wie Sie den speziellen Heapreservierungsaufruf ermitteln, bei dem ein Fehler auftrat.

Verwandte Abschnitte

  • CRT-Debugverfahren
    Enthält Links zu Debugtechniken für die C-Laufzeitbibliothek, darunter Verwenden der CRT-Debugbibliothek, Makros für die Berichterstellung, Unterschiede zwischen malloc und _malloc_dbg, Schreiben von Hookfunktionen für das Debuggen und CRT-Debugheap.