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
Vytiskne zprávu a potom přeruší program, je-li zadaný výraz vyhodnocen jako FALSE v ladicí verzi knihovny. |
|
Testy určené třídy nebo třídy odvozené od třídy zadaný objekt je objekt. |
|
Testy platnosti vnitřní objekt voláním jeho AssertValid členské funkce; obvykle přepsáno z CObject. |
|
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. |
|
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í. |
|
Poskytuje printf-stejně jako možnost v ladicí verzi knihovny. |
|
Podobný ASSERT ale vyhodnotí výraz ve verzi knihovny stejně jako ladicí verzi. |
MFC obecné diagnostické proměnné a funkce
Globální proměnnou, která odesílá CDumpContext do okna výstup ladicí informace a informace o ladění terminálu. |
|
Globální proměnná, která řídí chování ladění přidělování paměti. |
|
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. |
|
Kontroluje že integritu všech aktuálně přidělená paměť. |
|
Pokud je volána při ladění, vypíše stav objektu při ladění. |
|
Vytvořit bitovou kopii aktuálního zásobníku.Tato funkce je vždy staticky propojena. |
|
Umožňuje výpis nevracení paměti. |
|
Zapne sledování zapnutí a vypnutí paměti. |
|
Ověří, zda správně přidělené paměti bloku. |
|
Ověří, zda rozsah adres paměti v rozmezí daného programu. |
|
Určuje, zda je platný ukazatel na řetězec. |
|
Umožňuje volání funkce na každé přidělení paměti. |
Diagnostické funkce objektu knihovny MFC
Provede zadaný funkci ve všech CObject-odvozené třídy, které podporují kontrola typu v době spuštění. |
|
Provede zadaný funkci ve všech CObject-odvozené objekty, které byly přiděleny s nové. |