Strace, et Cli-værktøj til at opfange og registrere systemopkald

strace-statistik

Strace er et CLI-værktøj, der bruges til at kontrollere for fejl i systemet eftersom muliggør overvågning af systemopkald bruges af et bestemt program og alle de signaler, det modtager. Hjælpeprogram giver brugeren mulighed for at overvåge og (siden version 4.15) gribe ind i processen med interaktion mellem programmet og kernenherunder igangværende systemopkald, pop op-vinduer og procesændringer

Driften er muliggjort af en funktion i linux-kernen kaldet ptrace. Det svarer til den truss-applikation, der er tilgængelig på andre Unix-systemer. Cygwin-programmet giver et lignende værktøj. Dens mest almindelige anvendelse er at starte det sammen med det program, der spores, der udskriver en liste over det system, der kaldes det udføres.

Det er nyttigt at finde ud af årsagen til fejl i et bestemt programeller fordi det rapporterer situationer, hvor for eksempel programmet forsøger at få adgang til en fil, der ikke findes, eller som det ikke har læst tilladelse til.

Af de egenskaber, der skiller sig ud fra Strace, skiller følgende sig ud:

  • Kunne specificere et syscall-navnefilter, der skal spores (ved hjælp af -e trace = option): efter navn, såsom klon, fork, vfork; ved hjælp af en af ​​de foruddefinerede grupper, såsom% ipc eller% file; eller (siden version 4.17) ved hjælp af syntaks med regulært udtryk, f.eks. clock_ *.
  • Angiv en liste over ruter, der skal spores (f.eks. -P /etc/ld.so.cache).
  • Angiv en liste over filbeskrivere, hvis I / O skal dumpes
  • Tæl udførelsestid og syscall-tælling
  • Udskrivning af relative eller absolutte tidsstempler
  • Rediger retur- og fejlkoden for specificerede systemopkald og indsprøjt signaler efter udførelse
  • Ekstraktion af oplysninger på filbeskrivere (inklusive stikkontakter).
  • Staksporudskrivning, inklusive (siden version 4.21) efterspørgselssymbol (-k).
  • Filtrering efter syscall-returstatus
  • strace understøtter afkodning af argumenterne for nogle ioctl-kommandoklasser, såsom BTRFS_ *, V4L2_ *, DM_ *, NSFS_ *, MEM *, EVIO *, KVM_ * og flere andre.

Som strace kun detaljer systemets opkald, det kan ikke bruges til at opdage så mange problemer som en kode debugger som GNU Debugger (gdb). Det er dog lettere at bruge end en kodefejlfindingsprogram, og det er et yderst nyttigt værktøj til systemadministratorer. Det bruges også af forskere til at generere systemopkaldsspor til senere afspilning.

Om den nye version af Strace 5.3

For nylig blev den nye version af strace 5.3 præsenteret, hvor kodelicensen blev ændret fra BSD til LGPLv2.1 + og GPLv2 + til prøveversionen.

Også inden for de ændringer, der skiller sig ud, der er der understøttelse af filtrering af systemopkald ved at oprette seccomp-filtre ("–Seccomp-bpf") samt returkoden ("-e status = ...").

En anden ændring, der skiller sig ud i meddelelsen om denne nye version, er, at udviklerne tilføjede support til pidfd_open og clone3 dekodningssystemopkald, plus forbedret afkodning af io_cancel, io_submit, s390_sthyi og syslog systemopkald.

Også i annoncen fremhæves det ioctl-kommandolister synkroniseres med Linux 5.3-kernen

Af de andre ændringer der er nævnt i annoncen, er:

  • Forbedret NETLINK_ROUTE protokolafkodning
  • Den afkodede netværkslinkattribut UNIX_DIAG_UID og WDIOC_ * ioctl-kommandoerne
  • Konstantlisterne AUDIT_ *, BPF_ *, ETH_ *, KEYCTL_ *, KVM_ *, MAP_ *, SO_ *, TCP_ *, V4L2_ *, XDP_ * og * _MAGIC er blevet opdateret

Hvordan installeres strace 5.3 på Ubuntu og derivater?

Strace-værktøjet kan findes i Ubuntu-repositorierne såvel som dets derivater, men så vidt til denne nye version er den ikke medtaget i arkiverne. Installation gennem arkiverne kan udføres ved at udføre følgende kommando:

sudo apt install strace

Nu for dem, der ønsker at installere denne nye version, skal downloade kildekoden og kompilere på dit system.

De downloader kildekoden med:

git https://gitlab.com/strace/strace.git

De kommer ind med:

cd strace

Og de kompilerer med:

./configure && make && make install

Endelig angående brugen kan du finde nogle guider på nettet.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.