Polecenie Linux Strace

Polecenie Linux Strace
Linux zapewnia bogactwo narzędzi do debugowania do rozwiązywania problemów i aplikacji. Korzystnym narzędziem dla programistów jest polecenie Linux Strace. Komenda Strace to narzędzie do debugowania i rozwiązywania problemów, które przechwytuje i rejestruje połączenia systemowe wykonane i odbierane przez proces. Zapewnia skomplikowaną sekwencję binarną od początku do końca do końca.

W tym samouczku zagłębiamy się w polecenie Linux Strace i pokazujemy kilka przykładowych zastosowań.

Podstawowa składnia polecenia

Polecenie Strace przyjmuje następującą składnię:

komenda opcji $ strate

Jak zainstalować polecenie Linux Strace

Większość nowoczesnych dystrybucji Linux jest domyślnie wysyła się z Utility Strace. Jeśli jednak Strace nie jest zainstalowany w systemie z jakiegokolwiek powodu, wykonaj poniższe czynności, aby go zainstalować.

Na Debian / Ubuntu

Jeśli uruchamiasz systemy oparte na Debian / Ubuntu, wykonaj:

$ sudo apt instal instal Strace

Na RHEL / CENTOS

$ sudo yum instaluj strace

Aby sprawdzić, czy strace jest zainstalowany, możesz sprawdzić jego wersję, jak pokazano.

$ strace --version

Sprawdźmy teraz kilka przykładowych zastosowań.

Podstawowe polecenie Strace

W swoim najbardziej podstawowym formacie polecenie Strace prześledzi i wyświetli wywołania systemowe, argumenty (zamknięte w kwadratowych aparatach ortodontycznych lub nawiasach) i połączeniu wykonywalnym.

W poniższym przykładzie możemy zobaczyć argumenty uruchamiania skryptu Witam.cii, połączenie zamknięte w nawiasach w pierwszej linii.

$ Strace ./Witam.cii

W ostatnim wierszu możesz zobaczyć status wyjścia polecenia, w tym przypadku 0. Oznacza to, że polecenie zostało pomyślnie wykonane bez żadnego błędu. Kod wyjściowy -1 oznacza, że ​​podczas wykonywania napotkano błąd.

Policz wywoływanie systemu

Jeśli chcesz uzyskać liczbę połączeń systemowych, użyj -C Opcja dla liczby jak pokazano.

$ strace -c ./Witam.cii

Z powyższego wyjścia można zobaczyć liczbę wykonanych połączeń systemowych, w tym wykonywanie połączeń.

Wyświetl określone wywołania systemowe ze Strage

Dodatkowo możesz wybrać charakter wywołań systemowych wykonanych za pomocą Strace za pomocą -mi Opcja, po której następuje charakter wywołania systemu. Na pokazanym fragmencie wyświetliśmy wywołań systemu zapisu i odczytu.

$ strace -e trace = zapisz ./Witam.cii
$ strace -e trace = odczyt ./Witam.cii

Trace Network System wywołuje

Możesz ograniczyć Strace do wyświetlania połączeń systemowych, określając rodzaj połączenia. Tutaj. Trace = sieć Wskazuje, że zamierzamy uzyskać połączenie sieciowe polecenia sieciowego ping 8.8.8.8 -C 4.

$ strace -e trace = ping sieci 8.8.8.8 -C 4

Trace Signal System wywołuje

W przypadku połączeń związanych z systemem użyj argumentu, jak wskazano w poniższym poleceniu. Polecenie wydrukuje wezwanie sygnału dla ping 8.8.8.8 -C 4 Komenda.

$ strace -e trace = sygnał ping 8.8.8.8 -C 4

Drukowanie znacznika czasu każdego wywołania systemu

Aby wyodrębnić znacznik czasu dla każdego wywołania systemu, użyj -R Opcja, jak pokazano w następującym poleceniu.

$ strace -r ping 8.8.8.8 -C 4

Jak widać, dla każdego wywołania systemu drukowana jest względny znacznik czasu. Różnica czasu między kolejnymi wywołaniami systemowymi jest przechwytywana i rejestrowana.

Wyświetl czas trwania na wykonywanie połączeń systemowych

Ponadto możesz wydrukować czas spędzony na każdym połączeniu systemowym za pomocą -T opcja jak pokazano. Czas spędzony jest wskazany w ostatniej kolumnie, jak wskazano.

$ strace -t ping 8.8.8.8 -C 4

Wyświetl dokładny czas każdego wywołania systemu

Aby wydrukować rzeczywisty lub dokładny czas wywołania systemu, wywołać -T opcja jak pokazano. Czas w czasie rzeczywistym lub zegar ściany jest wydrukowany w pierwszej kolumnie.

$ strace -t ./Witam.cii

Wyświetl wskaźnik instrukcji dla każdego połączenia

Aby wydrukować wskaźnik instrukcji dla każdego wywołania systemu, użyj -I opcja.

$ strace -i ./Witam.cii

Zapisz dane wyjściowe wywołań systemowych do pliku tekstowego

Wreszcie polecenie Strace daje opcję zapisania wyjścia na plik tekstu, jak pokazano.

$ strace -o próbka_output.tekst ./Witam.cii

Tutaj, próbka_output.tekst to plik wyjściowy, podczas gdy ./Witam.cii jest poleceniem, którego systemy wywołujemy.

Owinięcie

Polecenie Strace to przydatne i potężne narzędzie wiersza poleceń, które pomaga debugować aplikacje, polecenia i procesy, szczególnie jeśli nie masz dostępnego kodu źródłowego. Jest to narzędzie wyboru dla programistów i administratorów systemów.