strace

strace onderschept en toont alle systeemaanroepen van een proces — onmisbaar voor het debuggen van mysterieuze fouten.

Basisgebruik

strace commando
strace -p PID

Opties

OptieBetekenis
-p PIDKoppel aan bestaand proces
-e trace=categorieFilter op type systeemaanroep
-o bestandSchrijf uitvoer naar bestand
-fVolg ook child-processen
-cStatistieken — welke aanroepen kosten het meest tijd
-s nMaximale stringlengte (standaard: 32)
-TToon tijdsduur per aanroep
-tVoeg tijdstempel toe

Categorieën (-e trace=)

CategorieInhoud
fileBestandstoegang
networkNetwerkaanroepen
processProcessen starten/stoppen
signalSignaalafhandeling
ipcInter-processcommunicatie

Voorbeelden

Welke bestanden opent een commando?

strace -e trace=file ls /tmp 2>&1 | grep open

Netwerkverbindingen van een proces:

strace -p 1234 -e trace=network

Tijdverdelingen:

strace -c commando

Uitvoer naar bestand:

strace -o /tmp/trace.txt -f nginx -t

Tip

strace -e trace=openat commando is de snelste manier om te zien welke configuratiebestanden een programma probeert te lezen — handig bij "config not found" fouten.

diagnostiekontwikkeling