c valgrind - ghdrako/doc_snipets GitHub Wiki

valgrind

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
⚠️ **GitHub.com Fallback** ⚠️