Freigeben über


Debug- Routinen

Die Debugversion des C-Laufzeitbibliotheks-Zubehör viele Diagnose Debugprogramme, die Dienste vereinfachen und Entwickler können:

  • Schritt direkt auf Laufzeitfunktionen während des Debuggens

  • Assertionen aufgelöst, Fehler und Ausnahmen:

  • Vollziehen Sie nach Heapbelegungen und vermeiden Sie Speicherverluste

  • Debuggen von Meldungen an den Benutzer des Berichts

Um diese Routinen zu verwenden, muss das _DEBUG-Flag definiert sind.Alle diese Routinen ausführen nichts in einem Verkaufsversionsbuild einer Anwendung.Weitere Informationen zur Verwendung der neuen Debuggen von Routinen finden Sie unter CRT-Debug-Technikenverwendet.

Debugversionen der C-Laufzeitbibliotheks-Routinen

Routine

Verwendung

NET Framework-Entsprechung

_ASSERT

Werten Sie einen Ausdruck aus und generiert ein Debugbericht, wenn das Ergebnis ist FALSCH

System::Diagnose::Debuggen::Assert

_ASSERTE

Ähnlich wie _ASSERT, aber schließen den fehlgeschlagenen Ausdruck im generierten Bericht ein

System::Diagnose::Debuggen::Assert

_CrtCheckMemory

Überprüfen Sie die Integrität der Speicherblöcke, die auf dem Debugheap zugewiesen werden

System::Diagnose::PerformanceCounter

_CrtDbgBreak

Legt einen Haltepunkt fest.

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtDbgReport, _CrtDbgReportW

Generieren Sie ein Debugbericht mit einer Benutzer und senden Sie für eine des Berichts drei möglichen Zielen

System::Diagnose::Debuggen::Schreiben, System::Diagnose::Debuggen::Writeline, System::Diagnose::Debuggen::WriteIf, System::Diagnose::Debuggen::WriteLineIf

_CrtDoForAllClientObjects

Rufen Sie eine von der Anwendung bereitgestellte Funktion für alle Typen _CLIENT_BLOCK auf dem Heap an

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtDumpMemoryLeaks

Speichern Sie alle Speicherblöcke im Debugheap, wenn ein bedeutender Speicherverlust aufgetreten ist

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtIsMemoryBlock

Überprüfen Sie, ob ein angegebener Speicherblock im lokalen Heap befindet und dass er einen Bezeichner des Debugheaps gültigen Blocktyp verfügt

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtIsValidHeapPointer

Überprüft, ob ein angegebener Zeiger im lokalen Heap ist

Nicht zutreffend.Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtIsValidPointer

Überprüfen Sie, ob ein angegebener Speicherbereich für das Lesen und Schreiben gültig ist

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtMemCheckpoint

Ruft den aktuellen Zustand des Debugheaps ein, und speichern Sie ihn in einer von der Anwendung bereitgestellt _CrtMemState Struktur

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtMemDifference

Vergleicht zwei Speicherzustände für signifikante Unterschiede und geben Sie die Ergebnisse zurück

Nicht zutreffend.Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtMemDumpAllObjectsSince

Speichern von Informationen über Objekte auf dem Heap, da ein gegebener Prüfpunkt oder Beginn der Programmausführung aufgezeichnet wurde

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtMemDumpStatistics

Speichern Sie die Debuginformationen Headerinformationen für einen angegebenen Speicherzustand in einer USER-lesbaren Form

System::Diagnose::PerformanceCounter

_CrtReportBlockType

Gibt das Blockformat-/den Untertyp eines bestimmten Debugheap blocks zugeordnete Zeiger zurück.

Nicht zutreffend.Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtSetAllocHook

Installieren Sie eine clientdefinierte Zuornungsanzahl-Funktion, indem Sie sie in haken Familie der Prozess der C-Laufzeit - Debuggen

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtSetBreakAlloc

Legen Sie einen Haltepunkt für eine angegebene Objekt fest bestellnummer zuordnungs

Nicht zutreffend.Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtSetDbgFlag

Rufen Sie bzw. ändern Sie den Zustand des _crtDbgFlag-Flags ab, die das Verhalten des Zuordnungen zu steuern managers Debugheap

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtSetDumpClient

Richten Sie eine von der Anwendung definierte Funktion, die jedes Mal eine Dumps für Reservierungen wird aufgerufen, um _CLIENT_BLOCK-Typ speicherblöcke Namen zu speichern

Nicht zutreffend.Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtSetReportFile

Identifizieren Sie die Datei oder einem Stream Sie als Ziel für einen bestimmten Bericht _CrtDbgReportnach Typ der zu verwendenden

Nicht zutreffend.Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtSetReportHook

Installieren Sie eine clientdefinierte Berichtsfunktion, indem Sie sie in Berichten haken Prozess der C-Laufzeit - Debuggen

Nicht zutreffend.Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtSetReportHook2, _CrtSetReportHookW2

Installiert oder deinstalliert eine clientdefinierte Berichtsfunktion indem das Haken in den Prozess der C-Laufzeit - Debuggen von Berichten.

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_CrtSetReportMode

Geben Sie die allgemeinen Ziele für einen bestimmten Typ des Berichts an, der von den generierten _CrtDbgReport

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_RPT [0,1,2,3,4]

Verfolgen Sie den Status der Anwendung verfolgen, indem Sie ein Debugbericht generiert werden, indem Sie _CrtDbgReport mit einer Formatzeichenfolge und einer variablen Anzahl von Argumenten aufrufen.Stellt keine Quelldatei- und Zeilennummerinformationen bereit.

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_RPTF [0,1,2,3,4]

Ähnlich wie den _RPTn Makros, sondern stellt den Namen der Quelldatei und Zeilennummer, in der der Bericht die Anforderung stammt

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_calloc_dbg

Ordnen Sie eine bestimmte Anzahl Speicherblöcke auf dem Heap mit zusätzlichem Speicher für einen Header des Debuggens und überschreiben Sie Puffer

Nicht zutreffend.Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_expand_dbg

Ändern eines angegebenen Speicherblock auf dem Heap Größe indem Sie den Block erweitern oder Vertrag abschließen

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_free_dbg

Geben Sie einen Speicherblock frei auf dem Heap

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_fullpath_dbg, _wfullpath_dbg

Erstellen Sie ein absoluter oder einen vollständigen Pfadnamen für den angegebenen relativen Pfadnamen mit _malloc_dbg , um Speicher belegen.

System::EA::Datei::Erstellen

_getcwd_dbg, _wgetcwd_dbg

Ruft das aktuelle Arbeitsverzeichnis, mit _malloc_dbg ab, um Speicher belegen.

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_malloc_dbg

Ordnen Sie einen Speicherblock auf dem Heap mit zusätzlichem Speicher für einen Header des Debuggens und überschreiben Sie Puffer

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_msize_dbg

Berechnen Sie die Größe eines Speicherblocks auf dem Heap

Nicht zutreffend.Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_realloc_dbg

Teilt einen angegebenen Speicherblock auf dem Heap neu, indem Sie den Block verschieben und/oder ihre Größe ändern

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

_strdup_dbg, _wcsdup_dbg

Dupliziert eine Zeichenfolge, mit _malloc_dbg , um Speicher belegen.

System::::ZeichenfolgeKlon

_tempnam_dbg, _wtempnam_dbg

Generieren von Namen, die Sie verwenden können, um temporäre Dateien mit _malloc_dbg zu erstellen, um Speicher belegen.

Nicht zutreffend.Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke.Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

Die Debuggen von Routinen können verwendet werden, um den Quellcode für die meisten anderen C-Laufzeit-Routinen während des Debuggens Prozesses zu wechseln.Bei einigen Technologie als herstellereigen Microsoft betrachtet und daher stellt den Quellcode für diese Routinen bereit.Die meisten dieser Routinen gehören der Ausnahmebehandlung oder Float, die Gruppen verarbeitet werden, aber einige weitere werden ebenfalls eingeschlossen.In der folgenden Tabelle sind diese Routinen auf.

C-Laufzeit-Routinen, die nicht in der Quellcode-Form verfügbar sind

acos, acosf

_fpclass

_nextafter

asin

_fpieee_flt

Kriegsgefangen

atan, atan2

_fpreset

printf, _printf_l, wprintf, _wprintf_l, _printf_s_l, wie, wprintf_s, _wprintf_s_l*

_cabs

frexp

_scalb

ceil

_hypot

scanf, _scanf_l, wscanf, _wscanf_l, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l*

_chgsign, _chgsignl

_isnan

setjmp

_clear87, _clearfp

_j0

sin

_control87, _controlfp, __control87_2

_j1

sinh

_copysign, _copysignl

_jn

sqrt

cos

ldexp

_status87, _statusfp

cosh

log

tan

Exp

log10

tanh

fabs

_logb

_y0

_finite

longjmp

_y1

floor

_matherr

_yn

fmod

modf

 

* Obwohl Quellcode für die meisten dieser Routine verfügbar ist, führt er einen internen Aufruf einer anderen Routine, für den Quellcode nicht bereitgestellt wird.

Einige und C-Laufzeitfunktionen C++-Operatoren verhalten sich anders, wenn sie mit einem Debugbuild einer Anwendung aufgerufen werden.(Beachten Sie, dass ein Debugbuild einer Anwendung ausgeführt werden können, indem er das _DEBUG-Flag definiert oder indem er mit einer Debugversion der C-Laufzeitbibliothek) verknüpft. Die Verhaltensunterschiede bestehen in der Regel aus Funktionen oder zusätzlichen Informationen, die von der Routine bereitgestellt werden, um den Debugprozess zu unterstützen.In der folgenden Tabelle sind diese Routinen auf.

Routinen, die sich in einem Debugbuild Verhalten einer Anwendung

C Abbruch Routine

Operator Löschen C++

C Assert Routine

Operator neu C++

Weitere Informationen zur Verwendung der Debugversionen der C++-Operatoren in der vorangehenden Tabelle finden Sie unter Verwenden des Debugheaps von C++.

Siehe auch

Referenz

Ablaufroutinen nach Kategorie

Laufzeitfehlerüberprüfung