Sdílet prostřednictvím


Diagnostické služby

Knihovny Microsoft Foundation Class poskytuje mnoho diagnostických služeb, které usnadňují ladění programů snazší.Tyto diagnostické služby zahrnují makra a globální funkce, které umožňují sledovat váš program paměti přidělení, Vypsat obsah objektů za běhu a tisknout zprávy ladění za běhu.Makra a globální funkce pro diagnostické služby jsou seskupeny do následujících kategorií:

  • Obecné diagnostické makra

  • Obecné diagnostické funkce a proměnné

  • Diagnostické funkce objektu

Tyto funkce a makra jsou k dispozici, pro všechny třídy odvozené z CObject v Debug a Release verze knihovny MFC.Nicméně vše kromě DEBUG_NEW a Ověřit Neprovádět žádnou akci ve vydané verzi.

V knihovně ladění všechny bloky přidělené paměti jsou v závorkách se série "guard bytů." Pokud tyto bajty jsou odštěpené paměť Zápis narušen, diagnostické procedury můžete ohlásit problém.Pokud zahrnete řádek:

#define new DEBUG_NEW

v souboru implementace veškerá volání nové bude ukládat název souboru a číslo řádku kde se uskutečnily přidělení paměti.Funkce CMemoryState::DumpAllObjectsSince se zobrazí tyto dodatečné informace umožňující identifikaci nevracení paměti.Také odkazovat na třídu CDumpContext Další informace o diagnostických výstup.

Knihovny běhu jazyka C navíc podporuje sadu diagnostických funkcí, které lze použít k ladění aplikací.Další informace naleznete v tématu Ladění rutiny v Run-Time Library Reference.

Makra diagnostiky všeobecné knihovny MFC

VYHODNOCENÍ

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

ASSERT_KINDOF

Testy určené třídy nebo třídy odvozené od třídy zadaný objekt je objekt.

ASSERT_VALID

Testy platnosti vnitřní objekt voláním jeho AssertValid členské funkce; obvykle přepsáno z CObject.

DEBUG_NEW

Zadává název souboru a řádek číslo pro všechna přiřazení objektu v režimu ladění umožňující vyhledání nevrácené paměti.

DEBUG_ONLY

Podobný ASSERT , ale již netestuje, hodnota výrazu; Tato možnost je užitečná pro kód, který má být spuštěn pouze v režimu ladění.

TRASOVÁNÍ

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

OVĚŘTE

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

MFC obecné diagnostické proměnné a funkce

afxDump

Globální proměnnou, která odesílá CDumpContext do okna výstup ladicí informace a informace o 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 zobrazíte, pokud se chyba a, pokud ano, vyvolá příslušné chyby.

AfxCheckMemory

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

AfxDump

Pokud je volána při ladění, vypíše stav objektu při ladění.

AfxDumpStack

Vytvořit bitovou kopii aktuálního zásobníku.Tato funkce je vždy staticky propojena.

AfxEnableMemoryLeakDump

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

AfxEnableMemoryTracking

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

AfxIsMemoryBlock

Ověří, zda správně přidělené paměti bloku.

AfxIsValidAddress

Ověří, zda rozsah adres paměti v rozmezí daného programu.

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 knihovny 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 globální prvky