Udostępnij za pośrednictwem


Procedury debugowania

Wersja debugowania biblioteki wykonawczej C dostarcza wielu usług diagnostycznych, które ułatwiają debugowania programów i umożliwić programistom:

  • Wkrocz bezpośrednio do wykonywania funkcji podczas debugowania

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

  • Alokacje sterty śledzenia oraz zapobiec przecieków pamięci

  • Komunikaty raportów do użytkownika

Aby użyć tych procedur, _DEBUG Flaga musi być zdefiniowana.Nie wszystkie procedury te w kompilacji detalicznych aplikacji.Aby uzyskać więcej informacji dotyczących sposobu używania nowych procedur debugowania, zobacz Technik debugowania CRT.

Program Debug: polecenie wersje procedur Run-Time Library C

Procedura

Użyj

równoważne z .NET Framework

_ASSERT

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

System::Diagnostics::Debug:: potwierdzenia

_ASSERTE

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

System::Diagnostics::Debug:: potwierdzenia

_CrtCheckMemory

Potwierdzenia integralności bloków pamięci alokowanych na stercie debugowania

System::Diagnostics::PerformanceCounter

_CrtDbgBreak

Ustawia punkt przerwania.

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

_CrtDbgReport, _CrtDbgReportW

Generowanie raportu debugowania z wiadomością użytkownika i wysłać raport 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 aplikacji dostarczane dla wszystkich _CLIENT_BLOCK typy na stosie

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

_CrtDumpMemoryLeaks

Wszystkie bloki pamięci na stercie debugowania zrzutu, gdy wystąpił przeciek pamięci

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

_CrtIsMemoryBlock

Sprawdź, że blok pamięci określony jest umieszczony w lokalnym sterty i czy jest debugowania prawidłowy identyfikator typu bloku sterty

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

_CrtIsValidHeapPointer

Sprawdza, czy określony wskaźnik w lokalna sterta

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

_CrtIsValidPointer

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

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

_CrtMemCheckpoint

Otrzymać aktualny stan sterty debugowania i zapisać go w aplikacji dostarczone przez _CrtMemState struktury

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

_CrtMemDifference

Porównywanie dwóch Państw pamięci na znaczne różnice i zwrócenie wyników

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

_CrtMemDumpAllObjectsSince

Zrzuć informacje o obiektach na stercie, ponieważ określony punkt kontrolny lub od rozpoczęcia wykonywania programu

Nie dotyczy.Aby wywołać standardową funkcję C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywoływania 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 typ bloku/podtyp skojarzonych z określonym debug wskaźnik bloku sterty.

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

_CrtSetAllocHook

Instalowanie funkcji alokacji zdefiniowanymi przez klienta za podłączając ją do procesu alokacji pamięci debugowania wykonywania C

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

_CrtSetBreakAlloc

Ustaw punkt przerwania na numer zamówienia określony obiekt alokacji

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

_CrtSetDbgFlag

Pobieranie lub zmiany stanu _crtDbgFlag flagi w celu sterowania zachowaniem alokacji menedżera sterty debugowania

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

_CrtSetDumpClient

Zainstaluj funkcję 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ć standardową funkcję C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywoływania platformy.

_CrtSetReportFile

Określenie pliku lub strumienia ma być używany jako miejsce docelowe dla typu określonego raportu przez_CrtDbgReport

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

_CrtSetReportHook

Instalowanie funkcji raportowania zdefiniowane przez klienta za podłączając ją do debugowania wykonywania C procesu zgłaszania

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

_CrtSetReportHook2, _CrtSetReportHookW2

Instaluje lub odinstalowuje to funkcja raportowania zdefiniowana przez klienta przez podłączając ją do debugowania wykonywania C procesu zgłaszania.

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

_CrtSetReportMode

Określ przeznaczenie ogólne dla typu określonego raportu generowanych przez_CrtDbgReport

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

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

Śledzenie postępu aplikacji przez Generowanie raportu debugowania przez wywołanie _CrtDbgReport z ciągu formatu i zmienną liczbę argumentów.Zawiera plik i linia numer informacji źródłowych.

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

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

Podobny do _RPTn makra, ale zawiera plik nazwa i wiersza numer źródła skąd pochodzi żądanie raportu

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

_calloc_dbg

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

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

_expand_dbg

Zmienianie rozmiaru określonego bloku pamięci na stercie metodą rozwijania lub Umawiające się bloku

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

_free_dbg

Wolny blok pamięci sterty

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

_fullpath_dbg, _wfullpath_dbg

Utwórz ścieżkę bezwzględną lub pełną nazwę określona ścieżka względna nazwa, za pomocą _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ć standardową funkcję C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywoływania platformy.

_malloc_dbg

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

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

_msize_dbg

Obliczanie rozmiaru bloku pamięci na stercie

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

_realloc_dbg

Przenoszenie lub zmiana rozmiaru bloku ponownego przydzielenia określonego bloku pamięci na stercie

Nie dotyczy.Aby wywołać standardową funkcję C, należy użyć PInvoke.Aby uzyskać więcej informacji, zobacz Przykłady wywoływania 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 służy do tworzenia tymczasowych plików, za pomocą _malloc_dbg przydzielić pamięci.

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

Debugowania procedur mogą być używane do kroku za pomocą kodu źródłowego dla większości innych wykonywania procedur C podczas procesu debugowania.Jednak Microsoft uzna za pewne techniki, aby być prawnie i, w związku z tym, nie przewiduje kod źródłowy tych procedur.Większość tych procedur należą do obsługi wyjątków lub grup przetwarzania zmiennoprzecinkowych, ale kilka innych są również uwzględnione.Poniższa tabela zawiera listę tych procedur.

C wykonywania procedur, które nie są dostępne w postaci kodu źródłowego

acos, acosf, acosl

_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, _chgsignf, _chgsignl

_isnan

setjmp

_clear87, _clearfp

_j0

SIN

_control87, _controlfp, __control87_2

_j1

SINH

copysign, copysignf, copysignl, _copysign, _copysignf, _copysignl

_jn

funkcja pierwiastek

COS

ldexp

_status87, _statusfp

COSH

Dziennik

tan

EXP

LOG10

TANH

fabs

_logb

_y0

_Określona liczba

longjmp

_y1

podłogi

_matherr

_yn

fmod

modf

 

* Chociaż kod źródłowy jest dostępny dla większości to rutynowe, to sprawia, że wewnętrzne połączenie do innej procedury, dla których kod źródłowy nie jest dostępny.

Niektóre C wykonywania funkcji i operatorów, C++ zachowywać się inaczej, po wywołaniu z kompilacja do debugowania aplikacji. (Należy zauważyć, że kompilacja do debugowania aplikacji może odbywać się poprzez określenie albo _DEBUG flagowanie lub poprzez łączenie z wersji debug biblioteki wykonawczej C.) Różnice funkcjonalne zazwyczaj składają się z dodatkowych funkcji lub informacje dostarczone przez rutynowe do obsługi procesu debugowania.Poniższa tabela zawiera listę tych procedur.

Tworzenie procedur, które zachowują się inaczej w debugowania aplikacji

C przerwać rutynowych

C++ usunąć operatora

C dochodzić rutynowych

C++ Nowy operatora

Zobacz też

Informacje

Procedury czasu wykonywania według kategorii

Sprawdzanie błędów czasu wykonywania