c valgrind - ghdrako/doc_snipets GitHub Wiki
Narzędzie do debugowania pamięci, wykrywania wycieków pamięci oraz profilowania aplikacji.
Valgrinda używa się w następujący sposób:
valgrind [valgrind-options] your-prog [your-prog-options]
Najważniejszą opcją Valgrinda
jest --tool
, która definiuje jakie narzędzie zostanie użyte (jeśli nie podamy, to zostanie użyty memcheck
).
Ważniejsze narzędzia wchodzące w skład Valgrinda:
-
memcheck
- wykrywanie problemów z pamięcią, jak wycieki czy zapis poza buforem, użycie niezainicjalizowanych zmiennych -
callgrind
- narzędzie do analizowania stosu wywołań -
massif
- pomiar użycia pamięci dynamicznej (zaalokowanej na stercie)valgrind --tool=massif <executable> <arguments>
-
helgrind
- wykrywanie problemów z synchronizacją (wyścigi, deadlocki) w kodzie wielowątkowym
Aby użyć Valgrinda, program należy skompilować z debug symbolami i najlepiej z wyłączonymi optymalizacjami (opcje -g -O0
dla gcc).
Analiza logu callgrinda:
kcachegrind imc_mewa_in_20201109_stdcall.log
Analiza logu massif:
ms_print imc_mewa_in_20201109_stdmass.log