Linux Command Line Mastery · Lekcja

Śledzenie wywołań systemowych za pomocą strace i ltrace

Pogłębi diagnozowanie problemów, śledząc wywołania systemowe i biblioteczne wykonywane przez proces, aby dokładnie ustalić, gdzie się on zatrzymuje lub kończy działanie błędem.

Lekcja 4 z 413 kroki

Śledzenie wywołań systemowych za pomocą strace i ltrace to bezpłatna lekcja Linux Command Line Mastery na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Linux Command Line Mastery, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Linux Command Line Mastery zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

When Metrics Are Not Enough

CPU, memory, and I/O tools tell you that something is slow. To learn why, you trace what a process actually asks the kernel to do. strace and ltrace open that window.

What strace Shows

strace records every system call: file opens, reads, network sends, and their return values, including errors.

strace ls /tmp

Attaching to a Running Process

Use -p PID to trace something already running, such as a stuck service.

sudo strace -p 4567

Filtering Specific Calls

-e trace= limits output to calls you care about, e.g. only file-related ones.

strace -e trace=openat,read,write cat /etc/hostname

Finding Missing Files

A classic use: see which file a program fails to open. Look for ENOENT (no such file) in the output.

strace -e trace=openat myapp 2>&1 | grep ENOENT

Summarizing with -c

-c prints a profile: which syscalls consumed the most time and how often each was called.

strace -c ls -R /usr/share

Timing Calls

-T shows how long each syscall took, and -t adds timestamps, pinpointing where a process blocks.

strace -T -e trace=read myapp

Following Child Processes

-f follows forks so you trace child processes too, essential for servers that spawn workers.

strace -f -p 4567

Saving Output to a File

Traces are noisy; -o writes them to a file you can grep later without cluttering the terminal.

strace -o trace.log -f myapp

ltrace for Library Calls

While strace shows kernel calls, ltrace shows library calls like malloc or strcmp, useful for logic-level debugging.

ltrace ./myprogram

A Troubleshooting Recipe

When a service hangs: attach with strace -f -p, watch for a syscall that never returns (often a blocked read or connect), and you have found the stall.

Quick Check

What kind of activity does strace primarily reveal?

Recap

You can now trace a process at the syscall level:

  • strace cmd or -p PID to attach
  • -e trace= filters, -c profiles, -T/-t time
  • -f follows children, -o saves output
  • ltrace shows library calls

Watch for errors like ENOENT or a syscall that never returns.

Bezpłatny start

Ucz się Linux Command Line Mastery dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
12
Lekcje
48

Często zadawane pytania

Czy lekcja „Śledzenie wywołań systemowych za pomocą strace i ltrace” jest bezpłatna?

Tak — pełny tekst „Śledzenie wywołań systemowych za pomocą strace i ltrace” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Linux Command Line Mastery, przejdź na CoddyKit PRO. Kurs Linux Command Line Mastery zawiera 4 lekcji w sumie.

Co nauczysz się w „Śledzenie wywołań systemowych za pomocą strace i ltrace”?

Pogłębi diagnozowanie problemów, śledząc wywołania systemowe i biblioteczne wykonywane przez proces, aby dokładnie ustalić, gdzie się on zatrzymuje lub kończy działanie błędem. Ćwiczysz Linux Command Line Mastery z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Linux Command Line Mastery?

Nie wymagamy żadnego doświadczenia. Linux Command Line Mastery w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Śledzenie wywołań systemowych za pomocą strace i ltrace”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Linux Command Line Mastery?

Tak. Każda lekcja Linux Command Line Mastery zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Monitorowanie operacji wejścia/wyjścia dysku: `iostat`, `iotop`
  2. Narzędzia do monitorowania pamięci i procesora
  3. Zaawansowane techniki logowania i rozwiązywania problemów
  4. Śledzenie wywołań systemowych za pomocą strace i ltrace
← Powrót do Linux Command Line Mastery