Rutiny ladění

Ladicí verze běhové knihovny jazyka C poskytuje spoustu diagnostických služeb, které usnadňují ladění programů a vývojářům umožňuje:

  • Krok přímo do běhových funkcí během ladění

  • Vyřešit kontrolní výrazy, chyby a výjimky

  • Trasovat přidělení haldy a zabránit nevracení paměti

  • Ohlásit zprávy ladění uživateli

Ladicí verze rutin běhové knihovny jazyka C

Chcete-li použít tyto rutiny, musí být definován příznak _DEBUG . 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žití
_ASSERT Vyhodnocení výrazu a vygenerování sestavy ladění, pokud je výsledek FALSE
_ASSERTE Podobně jako v _ASSERT případě, ale obsahuje neúspěšný výraz ve vygenerované sestavě
_CrtCheckMemory Potvrďte integritu paměťových bloků přidělených na haldě ladění
_CrtDbgBreak Nastaví bod přerušení.
, _CrtDbgReportW Generování sestavy ladění pomocí uživatelské zprávy a odeslání sestavy do tří možných cílů
_CrtDoForAllClientObjects Volání funkce poskytované aplikací pro všechny _CLIENT_BLOCK typy v haldě
_CrtDumpMemoryLeaks Vypsat všechny bloky paměti v haldě ladění při výskytu významné nevrácené paměti
_CrtIsMemoryBlock Ověřte, že zadaný blok paměti je umístěný v rámci místní haldy a že má platný identifikátor typu bloku haldy ladění.
_CrtIsValidHeapPointer Ověřuje, že zadaný ukazatel je v lokální haldě.
_CrtIsValidPointer Ověřte, že zadaný rozsah paměti je platný pro čtení a zápis.
_CrtMemCheckpoint Získejte aktuální stav haldy ladění a uložte ho do struktury dodané aplikací. _CrtMemState
_CrtMemDifference Porovnání dvou stavů paměti pro významné rozdíly a vrácení výsledků
_CrtMemDumpAllObjectsSince Vypsat informace o objektech v haldě od provedení zadaného kontrolního bodu nebo od spuštění programu
_CrtMemDumpStatistics Vypsat informace hlavičky ladění pro zadaný stav paměti v uživatelsky čitelné podobě
_CrtReportBlockType Vrátí typ bloku nebo podtyp přidružený k danému ukazateli bloku haldy ladění.
_CrtSetAllocHook Nainstalujte funkci alokace definovanou klientem a zapojte ji do procesu přidělování paměti ladění jazyka C za běhu.
_CrtSetBreakAlloc Nastaví zarážku na zadaném čísle pořadí přidělení objektu.
_CrtSetDbgFlag Načtěte nebo upravte stav _crtDbgFlag příznaku pro řízení chování přidělení Správce haldy ladění.
_CrtSetDumpClient Nainstalujte funkci definovanou aplikací, která se volá pokaždé, když se zavolá funkce výpisu ladění pro _CLIENT_BLOCK bloky paměti typu výpisu.
_CrtSetReportFile Identifikujte soubor nebo datový proud, který má být použit jako cíl pro konkrétní typ sestavy _CrtDbgReport
_CrtSetReportHook Nainstalujte funkci vytváření sestav definovanou klientem tak, že ji připojíte k procesu vytváření sestav ladění jazyka C za běhu.
, _CrtSetReportHookW2 Nainstaluje nebo odinstaluje funkci vytváření sestav definovanou klientem, a to tak, že je zapojte do procesu generování sestav ladění v jazyce C za běhu.
_CrtSetReportMode Zadejte obecné cíle pro konkrétní typ sestavy vygenerované _CrtDbgReport
_RPT[0,1,2,3,4] Sledujte průběh aplikace vygenerováním sestavy ladění voláním _CrtDbgReport řetězce formátu a variabilního počtu argumentů. Neposkytuje žádné informace o zdrojovém souboru a čísle řádku.
_RPTF[0,1,2,3,4] Podobá se _RPTn makrům, ale poskytuje název zdrojového souboru a číslo řádku, kde požadavek na sestavu pochází.
_calloc_dbg Přidělení zadaného počtu paměťových bloků na haldě s dodatečnou mezerou pro hlavičku ladění a přepsání vyrovnávací paměti
_expand_dbg Změnit velikost zadaného bloku paměti na haldě Rozbalením nebo vyplněním bloku
_free_dbg Uvolněte blok paměti v haldě.
, _wfullpath_dbg Pro zadaný název relativní cesty vytvořte absolutní nebo úplný název cesty pomocí _malloc_dbg k přidělení paměti.
, _wgetcwd_dbg Získá aktuální pracovní adresář pomocí _malloc_dbg k přidělení paměti.
_malloc_dbg Přidělte blok paměti v haldě s dodatečnou mezerou pro hlavičku ladění a přepsat vyrovnávací paměti.
_msize_dbg Vypočítat velikost bloku paměti v haldě
_realloc_dbg Přerozdělení zadaného bloku paměti na haldu přesunutím a/nebo změnou velikosti bloku
, _wcsdup_dbg Duplikuje řetězec pomocí _malloc_dbg k přidělení paměti.
, _wtempnam_dbg Vygenerujte názvy, které můžete použít k vytvoření dočasných souborů pomocí _malloc_dbg k přidělení paměti.

Běhové rutiny jazyka C, které nejsou k dispozici ve formuláři zdrojového kódu

Ladicí program lze použít pro krokování 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 určitou technologii za proprietární a proto neposkytuje zdrojový kód pro podmnožinu těchto rutin. Většina těchto rutin patří buď ke zpracování výjimek, nebo ke skupinám zpracování s plovoucí desetinnou čárkou, ale obsahuje i několik dalších. Následující tabulka uvádí tyto rutiny.

acos
acosh
asin
asinh
, atan2
atanh
Bessel functions
_cabs
ceil
_chgsign
, _clearfp
, _controlfp

Přestože je zdrojový kód k dispozici pro většinu rutin printf a scanf , provádí interní volání jiné rutiny, pro kterou není zadán zdrojový kód.

Rutiny, které se chovají jinak v sestavení ladění aplikace

Některé běhové funkce a operátory jazyka C++ se chovají odlišně při volání z ladicího sestavení aplikace. (Všimněte si, že sestavení ladění aplikace lze provést buď definováním _DEBUG příznaku, nebo propojením s ladicí verzí knihovny run-time jazyka C.) Rozdíly v chování obvykle sestávají z dalších funkcí nebo informací, které rutina poskytuje pro podporu procesu ladění. Následující tabulka uvádí tyto rutiny.

abortRutina jazyka C

assertRutina jazyka C

deleteOperátor C++

newOperátor C++

Viz také

Rutiny UCRT (Universal C runtime) podle kategorie
Kontrola chyb v době běhu