Linux Strace Command

Linux Strace Command
Linux gir et vell av feilsøkingsverktøy for feilsøkingstjenester og applikasjoner. Et gunstig verktøy for utviklere er Linux Strace -kommandoen. Strace -kommandoen er et feilsøkings- og feilsøkingsverktøy som avskjærer og registrerer systemanrop foretatt og mottatt av en prosess. Det gir en forseggjort binær sekvens fra begynnelsen til slutten.

I denne opplæringen fordyper vi Linux Strace -kommandoen og demonstrerer noen få eksempelbruk.

Grunnleggende kommandosyntaks

Strace -kommandoen tar følgende syntaks:

$ Strace Options Command

Hvordan installere Linux Strace -kommandoen

De fleste moderne Linux -distribusjoner leveres med Strace Utility som standard. Imidlertid, hvis Strace ikke er installert på systemet ditt uansett grunn, følg trinnene nedenfor for å installere det.

På Debian / Ubuntu

Hvis du kjører Debian / Ubuntu-baserte systemer, utfør:

$ sudo apt install Strace

På RHEL / CENTOS

$ sudo yum installer Strace

For å bekrefte at Strace er installert, kan du sjekke versjonen som vist.

$ Strace -Versjon

La oss nå sjekke ut noen få eksempelbruk.

Grunnleggende Strace -kommando

I sitt mest grunnleggende format vil Strace -kommandoen spore og vise systemanrop, argumentene (vedlagt i firkantede seler eller parentes) og den kjørbare samtalen.

I eksemplet nedenfor kan vi se argumentene for å kjøre skriptet Hallo.sh, Ring lukket i parentes i første linje.

$ Strace ./Hallo.sh

På den aller siste linjen kan du se utgangsstatusen til kommandoen, i dette tilfellet, 0. Dette innebærer at kommandoen ble utført med suksess uten feil. En exit -kode på -1 betyr at det ble oppstått en feil under utførelsen.

Telle systemet ringer

Hvis du vil få antall systemanrop, bruk -c Alternativ for tellingen som vist.

$ strace -c ./Hallo.sh

Fra utdataene over kan du se antallet systemanrop som er gjort, inkludert å ringe.

Vis spesifikke systemanrop med Strace

I tillegg kan du velge å se arten av systemanrop som er laget med Strace ved å bruke -e Alternativ etterfulgt av arten av systemanropet. I utdraget som vises, har vi vist skrive- og lest -systemanropene.

$ Strace -e Trace = Skriv ./Hallo.sh
$ strace -e trace = lest ./Hallo.sh

Spor nettverkssystemanrop

Du kan begrense Strace til å vise nettverkssystemanrop ved å spesifisere samtaletypen. Her. Spor = nettverk indikerer at vi har tenkt å få nettverksanropet til nettverkskommandoen Ping 8.8.8.8 -c 4.

$ Strace -e Trace = Network Ping 8.8.8.8 -c 4

Sporsignalsystemanrop

For systemrelaterte samtaler, bruk argumentet som angitt i kommandoen nedenfor. Kommandoen skriver ut signaloppringeren for Ping 8.8.8.8 -c 4 kommando.

$ Strace -e Trace = Signal Ping 8.8.8.8 -c 4

Skrive ut tidsstempel for hvert systemanrop

For å trekke ut tidsstempel for hver systemanrop, bruk -r Alternativ som demonstrert i følgende kommando.

$ strace -r ping 8.8.8.8 -c 4

Som du kan se, skrives en relativt tidsstempel for hver systemanrop. Tidsforskjellen mellom påfølgende systemanrop blir fanget og registrert.

Vis varigheten brukt på å ringe systemanrop

I tillegg kan du skrive ut varigheten av tidsbruk for hvert systemanrop ved å bruke -T alternativ som vist. Tidsbruken er angitt i den aller siste kolonnen som angitt.

$ strace -t ping 8.8.8.8 -c 4

Vis den nøyaktige tiden for hvert systemanrop

For å skrive ut den faktiske eller nøyaktige tiden for systemanropene, påkaller du -t alternativ som vist. Sanntids- eller veggklokketiden er skrevet ut i den første kolonnen.

$ strace -t ./Hallo.sh

Vis instruksjonspekeren for hver samtale

For å skrive ut instruksjonspekeren for alle systemanrop, bruk -Jeg alternativ.

$ strace -i ./Hallo.sh

Lagre utdataene fra systemanrop til en tekstfil

Til slutt gir Strace -kommandoen deg muligheten til å lagre utdataene til en tekstfil, som vist.

$ Strace -o Sample_output.tekst ./Hallo.sh

Her, Eksempel_Output.tekst er utdatafilen, mens ./Hallo.sh er kommandoen hvis system ringer vi sporer.

Innpakning

Strace-kommandoen er et hendig og kraftig kommandolinjeverktøy som hjelper med å feilsøke applikasjoner, kommandoer og prosesser, spesielt hvis du ikke har kildekoden tilgjengelig. Det er det valgte verktøyet for programvareutviklere og systemadministratorer.