Der CRT-Debugheap
Dieses Thema gilt für folgende Anwendungsbereiche:
Edition |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
Nur "Systemeigen" |
||||
Pro, Premium und Ultimate |
Nur "Systemeigen" |
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 Speicherbelegungsprobleme behoben: das Überschreiben eines reservierten Pufferendes und Speicherverluste (wobei nicht mehr benötigte Belegungen nicht mehr freigegeben werden können).Blocktypen auf dem Debugheap
Hier werden die fünf Reservierungsstypen beschrieben, denen Speicherblöcke im Debugheap zugewiesen werden. Die Reservierungstypen 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 eine zusammenfassende Momentaufnahme 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.