Přeskočit na obsah
_CORE
AI & agentní systémy Podnikové informační systémy Cloud & Platform Engineering Datová platforma & integrace Bezpečnost & compliance QA, testování & observabilita IoT, automatizace & robotika Mobilní & digitální produkty Bankovnictví & finance Pojišťovnictví Veřejná správa Obrana & bezpečnost Zdravotnictví Energetika & utility Telco & média Průmysl & výroba Logistika & e-commerce Retail & věrnostní programy
Reference Technologie Blog Know-how Nástroje
O nás Spolupráce Kariéra
CS EN DE
Pojďme to probrat

strace a ltrace — debugging

17. 08. 2025 Aktualizováno: 27. 03. 2026 2 min čtení intermediate

Když logy nepomáhají a aplikace se chová nevysvětlitelně, strace a ltrace jsou záchranná síť. Strace zachytává systémová volání — každou interakci procesu s kernelem, od otevírání souborů přes síťovou komunikaci po alokaci paměti. Ltrace sleduje volání knihovních funkcí. Tyto nástroje odhalí problémy, které nejsou viditelné v logách: chybějící soubory, zamítnutá oprávnění, síťové timeouty nebo neočekávané systémové chování.

strace

strace ls /tmp                         # trasuj celý příkaz
strace -p 1234                         # připoj se k běžícímu procesu
strace -e open,read,write ls /tmp      # filtruj jen konkrétní syscalls
strace -c ls /tmp                      # souhrn — statistika syscalls

Příklady

strace -e openat ./app 2>&1 | grep error       # hledej chyby při otevírání souborů
strace -e write -p $(pgrep myapp)               # sleduj co proces zapisuje
strace -c -p $(pgrep myapp)                     # kde tráví čas — profiling syscalls
strace -e network -p $(pgrep myapp)             # pouze síťové operace
strace -T -e read,write -p $(pgrep myapp)       # s časovými razítky pro každý syscall

Typický debugging workflow: nejprve strace -c pro identifikaci, které syscalls zabírají nejvíce času, poté strace -e s konkrétním filtrem pro detailní analýzu. Při sledování síťových problémů pomůže filtr connect,sendto,recvfrom, který ukáže navazování spojení a komunikaci.

ltrace

ltrace ./my-program                    # trasuj library calls
ltrace -e malloc+free ./my-program     # sleduj alokace paměti

ltrace je užitečné pro debugging memory leaků (sledování malloc/free párů), analýzu výkonu knihovních volání a pochopení, jak aplikace interaguje s externími knihovnami.

  • -f = sleduj i child procesy (fork/exec)
  • -s 1000 = zobraz delší stringy v argumentech
  • -T = zobraz čas strávený v každém volání
  • V produkci používejte krátkodobě — strace značně zpomaluje trasovaný proces

Ultimátní debugging

strace zachrání hodiny troubleshootingu tím, že ukáže přesně, co proces dělá na úrovni operačního systému. Kombinujte s perf pro výkonnostní analýzu a gdb pro debugging na úrovni kódu.

straceltracedebugging
Sdílet:

CORE SYSTEMS tým

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.