Udostępnij za pośrednictwem


Debugowania procedur

Program debug wersją biblioteki uruchomieniowej c dostarcza wiele usług diagnostycznych, które umożliwiają deweloperom i ułatwiają debugowanie programów:

  • Krok bezpośrednio do funkcji run-time podczas debugowania

  • Rozwiązać potwierdzeń, błędy i wyjątki

  • Śledzenie przydziałów stert i zapobiec przecieki pamięci

  • Komunikaty debugowania raport do użytkownika

Aby użyć tych procedur, _DEBUG musi być określona flaga.Nic wszystkich tych procedur w Kompilacja detaliczna aplikacji.Aby uzyskać więcej informacji na temat korzystania z nowych procedur debugowania, zobacz Techniki debugowania CRT.

Wersje c procedur biblioteka uruchomieniowa Debug

Rozpoczęto wykonywanie procedury

Użyj

.NET Framework równoważne

_ASSERT

Ocenia wyrażenia i generuje raport debugowania, gdy wynik jest równy FAŁSZ

System::Diagnostics::Debug:: potwierdzenia

_ASSERTE

Podobny do _ASSERT, ale wygenerowany raport zawiera wyrażenie nie powiodło się

System::Diagnostics::Debug:: potwierdzenia

_CrtCheckMemory

Potwierdź integralności bloków pamięci zaalokowanego na stercie debugowania

System::Diagnostics::PerformanceCounter

_CrtDbgBreak

Ustawia punkt przerwania.

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtDbgReport, _CrtDbgReportW

Generowanie raportu debugowania z wiadomości użytkownika i przesyła sprawozdanie do trzech możliwych docelowych

System::Diagnostics::Debug::Write, System::Diagnostics::Debug::Writeline, System::Diagnostics::Debug::WriteIf, System::Diagnostics::Debug::WriteLineIf

_CrtDoForAllClientObjects

Wywołania funkcji dostarczanych przez aplikację dla wszystkich _CLIENT_BLOCK typów na stercie

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtDumpMemoryLeaks

Zrzut wszystkich bloków pamięci na stercie debugowania, gdy wystąpił przeciek pamięci znaczące

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtIsMemoryBlock

Sprawdź, czy znajduje blok pamięci określony na stercie lokalne i ma identyfikator typu ważne debugowania sterty bloku

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtIsValidHeapPointer

Sprawdza, czy wskaźnik określony jest w lokalnym sterty

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtIsValidPointer

Sprawdź, czy zakres pamięci określony jest ważny do odczytu i zapisu

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtMemCheckpoint

Uzyskać bieżący stan sterty debugowania i zapisać go w aplikacji dostarczone _CrtMemState struktury

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtMemDifference

Porównywanie dwóch Państw pamięci dla znaczących różnic i zwracają wyniki

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtMemDumpAllObjectsSince

Zrzuć informacje o obiektach na stercie, ponieważ została podjęta określonego punktu kontrolnego lub od rozpoczęcia realizacji programu

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtMemDumpStatistics

Zrzuć informacje nagłówka debugowania dla stanu pamięci określony w formie możliwej do odczytania użytkownika

System::Diagnostics::PerformanceCounter

_CrtReportBlockType

Zwraca bloku typ/podtyp skojarzonych z wskaźnik bloku sterty danego programu debug.

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtSetAllocHook

Instalowanie funkcji alokacji zdefiniowanymi przez klienta za podczepiania go do procesu alokacji pamięci c debugowania run-time

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtSetBreakAlloc

Ustaw punkt przerwania na numer zamówienia alokacji określonego obiektu

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtSetDbgFlag

Pobieranie lub zmodyfikować stan _crtDbgFlag flagi w celu sterowania zachowaniem alokacji menedżera sterty debugowania

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtSetDumpClient

Instalowanie funkcji zdefiniowanych przez aplikację, która jest wywoływana za każdym razem, gdy wywoływana jest funkcja zrzutu debugowania zrzutu _CLIENT_BLOCK wpisz bloków pamięci

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtSetReportFile

Określenie pliku lub strumienia, aby służyć jako miejsce docelowe dla typu określonego raportu przez_CrtDbgReport

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtSetReportHook

Instalowanie funkcji sprawozdawczości określone przez klienta za podczepiania go do debugowania run-time C, proces raportowania

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtSetReportHook2, _CrtSetReportHookW2

Instaluje lub odinstalowuje funkcja raportowania zdefiniowana przez klienta przez podczepiania go do debugowania run-time C, proces raportowania.

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_CrtSetReportMode

Określić ogólne przeznaczenie typu określonego raportu generowanych przez_CrtDbgReport

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_RPT [0,1,2,3,4]

Śledzenie postępu aplikacji przez generowanie raportu debugowania, wywołując _CrtDbgReport ciąg formatu i zmiennej liczby argumentów.Zawiera plik i wiersza numer informacji źródłowych.

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_RPTF [0,1,2,3,4]

Podobny do _RPTn makra, ale zawiera numer nazwy i wiersz pliku źródłowego zainicjowano żądanie raportu

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_calloc_dbg

Przydzielić określona liczba bloków pamięci na stercie z dodatkowym miejscem dla nagłówka debugowania i zastąpić buforów

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_expand_dbg

Zmień rozmiar podany blok pamięci na stercie przez rozwijanie lub Umawiających się bloku

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_free_dbg

Wolny blok pamięci na stercie

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_fullpath_dbg, _wfullpath_dbg

Utwórz ścieżkę bezwzględną lub pełną nazwę określonej ścieżki względnej nazwy przy użyciu _malloc_dbg przydzielić pamięci.

System::IO::File:: Utwórz

_getcwd_dbg, _wgetcwd_dbg

Pobierz bieżący katalog roboczy za pomocą _malloc_dbg przydzielić pamięci.

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_malloc_dbg

Przydzielić bloku pamięci na stercie z dodatkowym miejscem na nagłówek debugowania i zastąpić buforów

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_msize_dbg

Oblicz rozmiar bloku pamięci na stercie

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_realloc_dbg

Alokacja podany blok pamięci na stercie, przenoszenie lub zmiana rozmiaru bloku

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

_strdup_dbg, _wcsdup_dbg

Duplikaty ciągu, przy użyciu _malloc_dbg przydzielić pamięci.

System::String::clone

_tempnam_dbg, _wtempnam_dbg

Generuj nazwy można utworzyć plików tymczasowych za pomocą _malloc_dbg przydzielić pamięci.

Nie dotyczy.Aby wywołać standardowych funkcji C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

Procedur debugowania, które mogą być używane do kroku poprzez kod źródłowy dla większości innych c procedur run-time podczas debugowania procesu.Jednakże firma Microsoft uważa niektóre technologii być zastrzeżone i w związku z tym, nie zawiera kodu źródłowego do tych procedur.Większość tych procedur, należą do obsługi wyjątków lub grup liczb zmiennoprzecinkowych przetwarzania, ale kilka innych są uwzględniane również.Poniższa tabela zawiera listę tych procedur.

C procedur Run-Time, które nie są dostępne w formie kodu źródłowego

ACOS, acosf

_fpclass

_nextafter

ASIN

_fpieee_flt

Pow

ATAN, funkcja atan2

_fpreset

printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l*

_cabs

frexp

_scalb

ceil

_hypot

scanf, _scanf_l, wscanf, _wscanf_l, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l*

_chgsign, _chgsignl

_isnan

setjmp

_clear87, _clearfp

_j0

SIN

_control87, _controlfp, __control87_2

_j1

SINH

_copysign, _copysignl

_jn

SQRT

COS

ldexp

_status87, _statusfp

COSH

Dziennik

tan

EXP

LOG10

TANH

fabs

_logb

_y0

_Określona liczba

longjmp

_y1

podłogi

_matherr

_yn

fmod

modf

 

* Mimo, że kod źródłowy jest dostępny dla większości tej procedury, sprawia, że wywołanie wewnętrznych do innej procedury, dla których nie podano kodu źródłowego.

Niektóre funkcje run-time c i C++ operatorów zachowywać się inaczej, gdy wywoływana z kompilacja do debugowania aplikacji.(Należy zauważyć, że kompilacja do debugowania aplikacji mogą być wykonywane przez definiowanie albo _DEBUG bandery lub przez łączenie się z wersją biblioteki uruchomieniowej c debugowania.) Różnice funkcjonalne zwykle składają się z dodatkowych funkcji lub informacje dostarczane przez rutynowych, aby obsługiwał proces debugowania.Poniższa tabela zawiera listę tych procedur.

Procedur, które zachowują się inaczej w debugowanie budowanie aplikacji

C przerwanie rutynowe

C++ usunąć operatora

C assert rutynowe

C++ Nowy operatora

Aby uzyskać więcej informacji na temat za pomocą wersji programu debug operatorów C++ w powyższej tabeli, zobacz za pomocą debugowania sterty z C++.

Zobacz też

Informacje

Procedury czasu według kategorii

Sprawdzanie błędów w czasie wykonywania