Sdílet prostřednictvím


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žít
_ASSERT Vyhodnocení výrazu a vygenerování sestavy ladění při výsledku FALSE
_ASSERTE _ASSERTPodobá 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