Valgrind

Valgrind Opis obrazu Valgrind logo.png.

Informacja
Twórca Julian Seward
Ostatnia wersja 3.16.1 (22 czerwca 2020 r)
Kaucja git: //sourceware.org/git/valgrind.git
Napisane w VS
System operacyjny GNU / Linux , macOS , Solaris i Android
Rodzaj Narzędzie programistyczne ( in )
Debugger pamięci ( in )
Licencja Powszechna Licencja Publiczna GNU
Stronie internetowej www.valgrind.org

Valgrind (wymawiane [vælɡrɪnd] , a nie [vælɡraɪnd] ) to darmowe narzędzie programistyczne do debugowania , profilowania kodu i wyróżniania wycieków pamięci .

Debugger

Pierwotnie został zaprojektowany jako darmowa wersja Purify  (In) pod GNU / Linux , na architekturze x86 . Dziś ewoluował, stając się ogólną strukturą do tworzenia dynamicznych narzędzi, takich jak „  warcaby  ” i „profilery”. Ma doskonałą reputację i jest szeroko stosowany wśród programistów GNU / Linuksa .

Valgrind to oprogramowanie modułowe. Wśród modułów znajdziemy na przykład Memcheck, który umożliwia wypłukanie błędów w programie na poziomie wykorzystania pamięci. Memcheck sprawdza między innymi:

Generał

Valgrind to w istocie maszyna wirtualna, która używa kompilacji just-in-time (JIT), w tym rekompilacji dynamicznej. Żadna instrukcja analizowanego programu nie jest nigdy wykonywana bezpośrednio na procesorze hosta. Zamiast tego Valgrind rozpoczyna od przetłumaczenia programu na prostszą, niezależną od procesora reprezentację pośrednią (IR). Po drugie, narzędzie (patrz poniżej) wykonuje szereg transformacji w RI, zanim Valgrind przekształci ten RI z powrotem w kod maszynowy, który ma wykonać procesor hosta. Mimo że może używać tłumaczenia dynamicznego (tj. Maszyna docelowa i host mają różne architektury), Valgrind tego nie robi. Valgrind rekompiluje kod binarny dla identycznych architektur. Valgrind zapewnia również punkty wejścia dla GDB, które umożliwiają debugowanie programu docelowego działającego w Valgrind.

Te przekształcenia (a także obsługa narzędzi) powodują znaczną utratę wydajności; Szybkość wykonania może być od 3 do 50 razy wolniejsza niż bez Valgrind (wszystko zależy od zastosowanego narzędzia i źródeł pomiaru).

Analizator wydajności (Profiler)

Moduł Cachegrind służy do wyróżniania błędów pamięci podręcznej, które spowalniają wykonywanie programu.

Moduł Massif umożliwia śledzenie zużycia baterii i określenie, które części programu wykorzystują ją najczęściej.

Moduł CallGrind pozwala zliczać liczbę wywołań wszystkich procedur programu podczas jego wykonywania, a także czas spędzony w procedurze.

Dodatkowe moduły

Dzięki modułowej architekturze wiele modułów innych firm zostało napisanych w celu zaspokojenia różnych potrzeb.

Istnieje również wiele innych narzędzi zewnętrznych wykorzystujących maszynę wirtualną Valgrind do wykonywania różnych pomiarów.

Uwagi i odniesienia

  1. Julian Seward , Valgrind-3.16.1 jest dostępny  " ,25 czerwca 2020 r(dostęp 21 stycznia 2021 )
  2. (in) „  Valgrind - często zadawane pytania - 1.1. Jak się wymawia „Valgrind”?  » , Valgrind.org.

Załączniki

Powiązane artykuły

Linki zewnętrzne