Rutiny ladění
Ladicí verze knihovny modulu runtime jazyka C poskytuje mnoho diagnostických služeb, které usnadňují ladění programů a umožňují vývojářům:
Přímé zakroužkování do funkcí za běhu během ladění
Řešení kontrolních výrazů, chyb a výjimek
Přidělení haldy trasování a zabránění nevracení paměti
Hlášení zpráv ladění pro uživatele
Ladění verzí rutin knihovny modulu runtime jazyka C
Chcete-li tyto rutiny použít, _DEBUG
musí být příznak definován. Všechny tyto rutiny nedělají nic v maloobchodním sestavení aplikace. Další informace o tom, jak používat nové rutiny ladění, naleznete v tématu Techniky ladění CRT.
Rutina | Používání |
---|---|
_ASSERT |
Vyhodnocení výrazu a vygenerování sestavy ladění při výsledku FALSE |
_ASSERTE |
_ASSERT Podobá se výrazu , ale obsahuje vygenerovanou sestavu výraz, který selhal. |
_CrtCheckMemory |
Potvrďte integritu bloků paměti přidělených v haldě ladění. |
_CrtDbgBreak |
Nastaví zarážku. |
_CrtDbgReport , _CrtDbgReportW |
Generování sestavy ladění se zprávou uživatele a odeslání sestavy do tří možných cílů |
_CrtDoForAllClientObjects |
Volání funkce zadané aplikací pro všechny _CLIENT_BLOCK typy haldy |
_CrtDumpMemoryLeaks |
Výpis všech bloků paměti v haldě ladění v případech, kdy došlo k významnému nevracení paměti |
_CrtIsMemoryBlock |
Ověřte, že se zadaný blok paměti nachází v místní haldě a zda má platný identifikátor typu bloku haldy ladění. |
_CrtIsValidHeapPointer |
Ověřuje, že zadaný ukazatel je v místní haldě. |
_CrtIsValidPointer |
Ověření platnosti zadaného rozsahu paměti pro čtení a zápis |
_CrtMemCheckpoint |
Získejte aktuální stav haldy ladění a uložte ji do struktury dodané _CrtMemState aplikací. |
_CrtMemDifference |
Porovnánídvouch |
_CrtMemDumpAllObjectsSince |
Výpis informací o objektech v haldě, protože zadaný kontrolní bod byl převzat nebo od spuštění programu |
_CrtMemDumpStatistics |
Výpis informací hlavičky ladění pro zadaný stav paměti ve formuláři čitelném uživatelem |
_CrtReportBlockType |
Vrátí typ bloku nebo podtyp přidružený k danému ukazateli bloku haldy ladění. |
_CrtSetAllocHook |
Nainstalujte funkci přidělení definovanou klientem tak, že ji připojíte k procesu přidělování paměti za běhu jazyka C. |
_CrtSetBreakAlloc |
Nastavení zarážky u zadaného čísla pořadí přidělení objektu |
_CrtSetDbgFlag |
Načtení nebo úprava stavu příznaku _crtDbgFlag pro řízení chování přidělení správce haldy ladění |
_CrtSetDumpClient |
Nainstalujte funkci definovanou aplikací, která se volá pokaždé, když je volána funkce výpisu paměti ladění pro bloky paměti typu výpisu _CLIENT_BLOCK paměti. |
_CrtSetReportFile |
Určete soubor nebo datový proud, který se má použít jako cíl pro konkrétní typ sestavy. _CrtDbgReport |
_CrtSetReportHook |
Instalace funkce generování sestav definované klientem tak, že ji připojíte k procesu generování sestav za běhu jazyka C. |
_CrtSetReportHook2 , _CrtSetReportHookW2 |
Nainstaluje nebo odinstaluje funkci generování sestav definovanou klientem tak, že ji připojíte k procesu generování sestav za běhu jazyka C. |
_CrtSetReportMode |
Zadejte obecné cíle pro konkrétní typ sestavy vygenerovaný pomocí _CrtDbgReport |
_RPT[0,1,2,3,4] |
Sledujte průběh aplikace generováním sestavy ladění voláním _CrtDbgReport řetězce formátu a proměnlivým počtem argumentů. Neobsahuje žádné informace o zdrojovém souboru a čísle řádku. |
_RPTF[0,1,2,3,4] |
Podobá se _RPTn makrem, ale poskytuje název zdrojového souboru a číslo řádku, kde žádost o sestavu pochází. |
_calloc_dbg |
Přidělení zadaného počtu bloků paměti v haldě s nadbytečným místem pro hlavičku ladění a přepsání vyrovnávacích pamětí |
_expand_dbg |
Změna velikosti zadaného bloku paměti na haldě rozšířením nebo uzavřením bloku |
_free_dbg |
Uvolnění bloku paměti na haldě |
_fullpath_dbg , _wfullpath_dbg |
Vytvořte absolutní nebo úplný název cesty pro zadaný relativní název cesty, který slouží _malloc_dbg k přidělení paměti. |
_getcwd_dbg , _wgetcwd_dbg |
Získejte aktuální pracovní adresář pomocí _malloc_dbg k přidělení paměti. |
_malloc_dbg |
Přidělení bloku paměti na haldě s nadbytečným místem pro hlavičku ladění a přepsání vyrovnávacích pamětí |
_msize_dbg |
Výpočet velikosti bloku paměti na haldě |
_realloc_dbg |
Opětovným přidělením zadaného bloku paměti na haldě přesunutím nebo změnou velikosti bloku |
_strdup_dbg , _wcsdup_dbg |
Duplikuje řetězec, který se používá _malloc_dbg k přidělení paměti. |
_tempnam_dbg , _wtempnam_dbg |
Generovat názvy, které můžete použít k vytvoření dočasných souborů pomocí _malloc_dbg přidělení paměti. |
Rutiny modulu runtime jazyka C, které nejsou dostupné ve formuláři zdrojového kódu
Ladicí program lze použít k procházení zdrojového kódu pro většinu rutin modulu runtime jazyka C během procesu ladění. Společnost Microsoft však považuje některé technologie za vlastní, a proto neposkytuje zdrojový kód pro podmnožinu těchto rutin. Většina těchto rutin patří do skupin zpracování výjimek nebo zpracování s plovoucí desetinou čárkou, ale zahrnuje i několik dalších. Následující tabulka uvádí tyto rutiny.
I když je zdrojový kód k dispozici pro většinu printf
rutin a scanf
rutin, provádí interní volání jiné rutiny, pro kterou není zdrojový kód poskytován.
Rutiny, které se chovají jinak v sestavení ladění aplikace
Některé funkce za běhu jazyka C a operátory jazyka C++ se chovají odlišně při zavolání z sestavení ladění aplikace. (Ladicí sestavení aplikace můžete vytvořit buď definováním _DEBUG
příznaku, nebo propojením s ladicí verzí knihovny runtime jazyka C.) Rozdíly chování se obvykle skládají z dalších funkcí nebo informací poskytovaných rutinou pro podporu procesu ladění. Následující tabulka uvádí tyto rutiny.
Rutina jazyka C abort
Rutina jazyka C assert
Operátor jazyka C++ delete
Operátor jazyka C++ new
Viz také
Rutiny UCRT (Universal C runtime) podle kategorie
Kontrola chyb za běhu