Toolverse
Wszystkie skille

debug-with-valgrind

autor: facet-rs

Debuguj segfulty i wycieki pamięci w testach za pomocą valgrinda zintegrowanego z nextest

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Testowanie

O skillu

Skill umożliwia debugowanie awarii, segfaultów i błędów pamięci w testach Rust przy użyciu valgrinda. Integracja z nextest jest już wstępnie skonfigurowana w pliku .config/nextest.toml, co eliminuje potrzebę ręcznego ustawiania valgrinda. Wystarczy uruchomić testy z flagą --profile valgrind, a narzędzie automatycznie opakowuje wykonanie testów odpowiednimi parametrami valgrinda, takimi jak pełne sprawdzanie wycieków i raportowanie wszystkich typów wycieków. Nextest przejmuje obsługę integracji skryptu wrappera i dostarcza czyste, sformatowane wyniki valgrinda, co znacznie przyspieszą proces lokalizacji i naprawy błędów pamięci.

Jak używać

  1. Upewnij się, że masz zainstalowany valgrind w swoim systemie oraz że projekt zawiera plik konfiguracyjny .config/nextest.toml z zdefiniowanym profilem valgrind i skryptem wrappera. Skill zakłada, że ta konfiguracja jest już przygotowana w repozytorium.

  2. Gdy test ulegnie awarii z błędem typu SIGSEGV lub podejrzewasz wyciek pamięci, otwórz terminal w katalogu projektu i uruchom test pod valgrind za pomocą komendy cargo nextest run --profile valgrind -p NAZWA_PAKIETU --test NAZWA_PLIKU_TESTÓW NAZWA_TESTU. Zastąp NAZWA_PAKIETU nazwą pakietu zawierającego test, NAZWA_PLIKU_TESTÓW nazwą pliku testów, a NAZWA_TESTU nazwą konkretnego testu, który chcesz debugować.

  3. Valgrind automatycznie przeanalizuje wykonanie testu i wykaże dokładną linię kodu, w której doszło do nieprawidłowego odczytu lub zapisu do pamięci. Nextest sformatuje i wyświetli wyniki w czytelny sposób, wskazując typ błędu i jego lokalizację.

  4. Przeanalizuj raport valgrinda, zidentyfikuj źródło problemu w kodzie i wprowadź niezbędne poprawki w logice zarządzania pamięcią lub dostępu do zmiennych.

  5. Po naprawie uruchom test ponownie z profilem valgrind, aby potwierdzić, że błąd został usunięty i nie pojawiają się nowe problemy z pamięcią.

  6. Dla pełnej weryfikacji uruchom test również bez profilu valgrind, używając standardowego polecenia cargo nextest run, aby upewnić się, że naprawa nie wprowadził nowych problemów w normalnym trybie wykonania.

Podobne skille