Sdílet prostřednictvím


Diagnostické služby

Knihovny Microsoft Foundation Class dodává mnoho diagnostické služby, které programy snadnější ladění.Tyto diagnostické služby zahrnují makra a globální funkce, které umožňují sledovat váš program paměti rozdělení Vypsat obsah objektů při běhu a tisknout ladicí zprávy v době spuštění.Globální funkce pro diagnostické služby a makra jsou seskupeny do následujících kategorií:

  • Obecné diagnostické makra

  • Obecné diagnostických funkcí a proměnných

  • Diagnostické funkce objektu

Tyto makra funkce jsou k dispozici a pro všechny třídy odvozené z CObject Debug a Release verze MFC.Však všechny kromě DEBUG_NEW a ověřit neprovádějte žádnou akci v verze.

V knihovně ladění jsou všechny bloky paměti přidělené bracketed s řadou "guard bajtů." Pokud tyto bajty jsou narušen zápis vyvolání chybové paměti, diagnostických rutin můžete ohlásit problém.Pokud řádek obsahuje:

#define new DEBUG_NEW

v souboru provádění všech volání na nové uloží název souboru a řádku číslo, kde se uskutečnila přidělení paměti.Funkce CMemoryState::DumpAllObjectsSince zobrazí tento další informace umožňující identifikaci nevrácené paměti.Také odkazovat na třídu CDumpContext Další informace o diagnostických výstup.

C Runtime library navíc podporuje sadu diagnostické funkce, které lze použít k ladění aplikací.Další informace naleznete v Ladění rutin v referenční knihovna Run-Time.

Makra Diagnostika MFC Obecné

VYHODNOCENÍ

Vytiskne zprávu a potom přeruší program, je-li zadaný výraz vyhodnocen jako FALSE v ladicí verzi knihovny.

ASSERT_KINDOF

Objekt je objekt určené třídy nebo z třídy odvozené od třídy zadané testy.

ASSERT_VALID

Testy platnosti vnitřní objekt voláním jeho AssertValid členské funkce; obvykle byla vyřazena z CObject.

DEBUG_NEW

Zadává název souboru a řádek číslo pro přidělení všech objektů v režimu ladění usnadňují vyhledání nevrácené paměti.

DEBUG_ONLY

Podobný výrazu , ale není testování hodnoty výrazu; To je užitečné pro kód, který má být spuštěn pouze v režimu ladění.

TRASOVÁNÍ

Poskytuje printf-jako možnost v ladicí verzi knihovny.

OVĚŘIT

Podobný výrazu , ale vyhodnotí výraz ve verzi knihovny, stejně jako v ladicí verzi.

MFC obecné Diagnostika proměnné a funkce

afxDump

Globální proměnná, která odesílá CDumpContext informace výstupní okno debugger nebo ladění terminálu.

afxMemDF

Globální proměnná, která řídí chování ladění přidělování paměti.

AfxCheckError

Globální proměnná používá k testování předané kód SCODE na chybu a, pokud ano, vyvolá odpovídající chybu.

AfxCheckMemory

Kontroluje že integritu všech aktuálně přidělená paměť.

AfxDump

Pokud je volána v debuggeru Vypíše stav objektu při ladění.

AfxDumpStack

Vytvoření bitové kopie aktuálního zásobníku.Tato funkce je vždy spojen staticky.

AfxEnableMemoryLeakDump

Umožňuje výpis nevracení paměti.

AfxEnableMemoryTracking

Zapne sledování zapnutí a vypnutí paměti.

AfxIsMemoryBlock

Ověří správně přiděleny bloku paměti.

AfxIsValidAddress

Ověří, zda rozsah adres paměti v rámci programu bounds.

AfxIsValidString

Určuje, zda je platný ukazatel na řetězec.

AfxSetAllocHook

Umožňuje volání funkce na každé přidělení paměti.

Diagnostické funkce objektu MFC

AfxDoForAllClasses

Provede zadaný funkci ve všech CObject-odvozené třídy, které podporují kontrola typu v době spuštění.

AfxDoForAllObjects

Provede zadaný funkci ve všech CObject-odvozené objekty, které byly přiděleny s nové.

Viz také

Koncepty

MFC makra a Globals