Strace

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

strace - Spåra systemanrop och signaler

`strace` är ett diagnostiskt, felsöknings- och instruktionsverktyg som används för att övervaka systemanrop och signaler som en process utför. Det används ofta för att felsöka och analysera program och deras interaktion med operativsystemet.

NAMN

strace - Spåra systemanrop och signaler

SYNOPSIS

strace [alternativ] [kommando [argument...]]
strace [alternativ] -p pid
strace -c [alternativ] [kommando [argument...]]

BESKRIVNING

`strace` är ett verktyg som används för att diagnostisera, felsöka och instruera systemanrop och signaler som en process utför. Det kan användas för att se vilka systemanrop en process gör, undersöka deras resultat och felsöka problem som kan uppstå vid systemanrop.

ALTERNATIV

Kommandot `strace` stöder flera alternativ som kan användas för att justera dess beteende:

  • -c, --count - Sammanfatta systemanrop.
  • -d, --debug - Skriv diagnostisk information om `strace` själv till standardfelutgången.
  • -f, --follow-forks - Följ barnprocesser som skapats av `fork`, `vfork`, etc.
  • -ff - Skriv utdata från varje process till separata filer med PID i filnamnet.
  • -h, --help - Visa hjälpmeddelande och avsluta.
  • -i, --instruction-pointer - Skriv ut instruktionspekaren vid varje systemanrop.
  • -o, --output=FILENAME - Skriv utdata till angiven fil.
  • -p, --attach=PID - Fäst `strace` till en befintlig process med angivet PID.
  • -r, --relative-timestamp - Skriv ut tidsstämplar relativt till den första systemanropet.
  • -s, --string-limit=LEN - Begränsa utskriften av strängar till LEN tecken.
  • -t, --absolute-timestamp - Skriv ut absoluta tidsstämplar.
  • -tt - Skriv ut tidsstämplar med mikrosektnöggrannhet.
  • -T, --syscall-time - Visa tidsåtgång för varje systemanrop.
  • -v, --verbose - Skriv ut alla detaljer om systemanrop.
  • -V, --version - Visa programversionen.
  • -x - Skriv ut icke-ASCII-strängar i hex.
  • -xx - Skriv ut alla strängar i hex.
  • -y - Skriv ut minnesadresser i symbolisk form.
  • -e, --trace=set - Tracera endast de systemanrop som anges i set.
  • -P, --trace-path=path - Tracera endast de systemanrop som refererar till angiven sökväg.

KOMMANDON

Kommandot `strace` stöder flera kommandon som kan användas för att spåra systemanrop och signaler som en process utför:

Spåra systemanrop för ett kommando

`strace` kan användas för att spåra systemanrop som ett kommando utför.

EXEMPEL

strace ls -l

Detta kommando visar alla systemanrop som utförs av `ls -l`.

Spåra systemanrop för en befintlig process

`strace` kan användas för att fästa sig till en befintlig process och spåra dess systemanrop.

EXEMPEL

strace -p 1234

Detta kommando fäster `strace` till processen med PID 1234 och visar dess systemanrop.

Sammanfatta systemanrop

`strace` kan användas för att sammanfatta systemanrop som ett kommando utför.

EXEMPEL

strace -c ls -l

Detta kommando visar en sammanfattning av alla systemanrop som utförs av `ls -l`, inklusive antal anrop och tidsåtgång.

Följ barnprocesser

`strace` kan användas för att följa barnprocesser som ett kommando skapar.

EXEMPEL

strace -f ls -l

Detta kommando följer alla barnprocesser som skapas av `ls -l` och visar deras systemanrop.

Skriv utdata till en fil

`strace` kan användas för att skriva utdata till en specifik fil.

EXEMPEL

strace -o output.txt ls -l

Detta kommando skriver alla systemanrop som utförs av `ls -l` till filen `output.txt`.

Begränsa utskriften av strängar

`strace` kan användas för att begränsa utskriften av strängar till ett visst antal tecken.

EXEMPEL

strace -s 32 ls -l

Detta kommando begränsar utskriften av strängar till 32 tecken för systemanrop som utförs av `ls -l`.

Visa tidsstämplar för systemanrop

`strace` kan användas för att visa tidsstämplar för systemanrop.

EXEMPEL

strace -t ls -l

Detta kommando visar tidsstämplar för alla systemanrop som utförs av `ls -l`.

Visa tidsåtgång för varje systemanrop

`strace` kan användas för att visa tidsåtgång för varje systemanrop.

EXEMPEL

strace -T ls -l

Detta kommando visar tidsåtgång för varje systemanrop som utförs av `ls -l`.

Spåra endast specifika systemanrop

`strace` kan användas för att spåra endast specifika systemanrop.

EXEMPEL

strace -e trace=open,close ls -l

Detta kommando visar endast `open` och `close` systemanrop som utförs av `ls -l`.

Spåra systemanrop som refererar till en specifik sökväg

`strace` kan användas för att spåra endast de systemanrop som refererar till en specifik sökväg.

EXEMPEL

strace -P /etc/passwd ls -l

Detta kommando visar endast de systemanrop som refererar till `/etc/passwd` och utförs av `ls -l`.

SKILLNADER MELLAN macOS OCH LINUX

Det finns viktiga skillnader att tänka på när man använder `strace` på macOS jämfört med Linux:

Tillgänglighet: `strace` är ett verktyg som främst används på Linux. På macOS används `dtruss` och `dtrace` för liknande funktioner.

Installationssteg på Linux:

  • På Debian-baserade system:

sudo apt-get update
sudo apt-get install strace

  • På Red Hat-baserade system:

sudo yum install strace

Installationssteg på macOS: På macOS kan `dtrace` användas, vilket är inbyggt i systemet. `dtruss` är ett wrapper-script runt `dtrace` och kan användas på liknande sätt som `strace`.


sudo dtruss -p 1234

Funktionalitet: De flesta funktioner som erbjuds av `strace` är tillgängliga genom `dtrace` och `dtruss` på macOS. Vissa detaljer kan dock skilja sig beroende på implementation och användningsfall.

Användning: På Linux används `strace` ofta för att övervaka och felsöka systemanrop och signaler. På macOS används `dtrace` och `dtruss` för liknande ändamål.

FELSÖKNING

Om du får ett felmeddelande när du använder `strace`, kontrollera följande:

Att du använder rätt syntax och alternativ för ditt specifika kommando. Att processen du försöker spåra existerar och har rätt behörigheter. Att alla nödvändiga paket och bibliotek är installerade och uppdaterade. Att du har tillräckliga användarrättigheter för att spåra systemanrop.

Vanliga fel och deras lösningar:

  • Felmeddelande: "Permission denied":
 * Lösning: Kontrollera att du har nödvändiga behörigheter för att spåra de specifika processerna eller systemanropen.
  • Felmeddelande: "No such process":
 * Lösning: Kontrollera att den angivna processen existerar och är korrekt stavad.
  • Felmeddelande: "Invalid system call":
 * Lösning: Kontrollera att du anger giltiga systemanrop för spårning.

AVANCERAD ANVÄNDNING

`strace` erbjuder avancerade funktioner som kan användas för att spåra och analysera systemanrop och signaler mer effektivt. Här är några exempel:

Följ endast specifika barnprocesser


strace -f --trace=execve ls -l

Använd detta kommando för att följa endast de barnprocesser som utför `execve`.

Spåra systemanrop med mikrosektnöggrannhet


strace -tt ls -l

Använd detta kommando för att visa tidsstämplar med mikrosektnöggrannhet för alla systemanrop som utförs av `ls -l`.

Visa symboliska minnesadresser


strace -y ls -l

Använd detta kommando för att visa minnesadresser i symbolisk form för systemanrop som utförs av `ls -l`.

SE ÄVEN

  • dtrace - Dynamisk spårning av operativsystem och applikationer (macOS).
  • lsof - Lista öppna filer och de processer som använder dem.
  • gdb - GNU Debugger.
  • ptrace - Spåra systemanrop och signaler för en process.

FÖRFATTARE

`strace` utvecklades av Paul Kranenburg och bidragsgivare.

KOLOFON

Denna sida är en del av `strace`-projektet. Mer information om projektet finns på ⟨https://strace.io⟩. Om du har en buggrapport för denna manualsida, se ⟨https://github.com/strace/strace/issues⟩. Denna sida erhölls från projektets upstream Git-repository ⟨https://github.com/strace/strace.git⟩ den 2023-12-22. Om du upptäcker några renderingsproblem i denna HTML-version av sidan, eller om du tror att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i denna KOLOFON (som inte är en del av den ursprungliga manualsidan), skicka ett e-postmeddelande till man-pages@man7.org.

KÄLLOR

strace manual (Linux) strace Officiell Webbplats strace GitHub Repository

strace - Spåra systemanrop och signaler

`strace` är ett diagnostiskt, felsöknings- och instruktionsverktyg som används för att övervaka systemanrop och signaler som en process utför. Det används ofta för att felsöka och analysera program och deras interaktion med operativsystemet.

NAMN

strace - Spåra systemanrop och signaler

SYNOPSIS

strace [alternativ] [kommando [argument...]]
strace [alternativ] -p pid
strace -c [alternativ] [kommando [argument...]]

BESKRIVNING

`strace` är ett verktyg som används för att diagnostisera, felsöka och instruera systemanrop och signaler som en process utför. Det kan användas för att se vilka systemanrop en process gör, undersöka deras resultat och felsöka problem som kan uppstå vid systemanrop.

ALTERNATIV

Kommandot `strace` stöder flera alternativ som kan användas för att justera dess beteende:

  • -c, --count - Sammanfatta systemanrop.
  • -d, --debug - Skriv diagnostisk information om `strace` själv till standardfelutgången.
  • -f, --follow-forks - Följ barnprocesser som skapats av `fork`, `vfork`, etc.
  • -ff - Skriv utdata från varje process till separata filer med PID i filnamnet.
  • -h, --help - Visa hjälpmeddelande och avsluta.
  • -i, --instruction-pointer - Skriv ut instruktionspekaren vid varje systemanrop.
  • -o, --output=FILENAME - Skriv utdata till angiven fil.
  • -p, --attach=PID - Fäst `strace` till en befintlig process med angivet PID.
  • -r, --relative-timestamp - Skriv ut tidsstämplar relativt till den första systemanropet.
  • -s, --string-limit=LEN - Begränsa utskriften av strängar till LEN tecken.
  • -t, --absolute-timestamp - Skriv ut absoluta tidsstämplar.
  • -tt - Skriv ut tidsstämplar med mikrosektnöggrannhet.
  • -T, --syscall-time - Visa tidsåtgång för varje systemanrop.
  • -v, --verbose - Skriv ut alla detaljer om systemanrop.
  • -V, --version - Visa programversionen.
  • -x - Skriv ut icke-ASCII-strängar i hex.
  • -xx - Skriv ut alla strängar i hex.
  • -y - Skriv ut minnesadresser i symbolisk form.
  • -e, --trace=set - Tracera endast de systemanrop som anges i set.
  • -P, --trace-path=path - Tracera endast de systemanrop som refererar till angiven sökväg.

KOMMANDON

Kommandot `strace` stöder flera kommandon som kan användas för att spåra systemanrop och signaler som en process utför:

Spåra systemanrop för ett kommando

`strace` kan användas för att spåra systemanrop som ett kommando utför.

EXEMPEL

strace ls -l

Detta kommando visar alla systemanrop som utförs av `ls -l`.

Spåra systemanrop för en befintlig process

`strace` kan användas för att fästa sig till en befintlig process och spåra dess systemanrop.

EXEMPEL

strace -p 1234

Detta kommando fäster `strace` till processen med PID 1234 och visar dess systemanrop.

Sammanfatta systemanrop

`strace` kan användas för att sammanfatta systemanrop som ett kommando utför.

EXEMPEL

strace -c ls -l

Detta kommando visar en sammanfattning av alla systemanrop som utförs av `ls -l`, inklusive antal anrop och tidsåtgång.

Följ barnprocesser

`strace` kan användas för att följa barnprocesser som ett kommando skapar.

EXEMPEL

strace -f ls -l

Detta kommando följer alla barnprocesser som skapas av `ls -l` och visar deras systemanrop.

Skriv utdata till en fil

`strace` kan användas för att skriva utdata till en specifik fil.

EXEMPEL

strace -o output.txt ls -l

Detta kommando skriver alla systemanrop som utförs av `ls -l` till filen `output.txt`.

Begränsa utskriften av strängar

`strace` kan användas för att begränsa utskriften av strängar till ett visst antal tecken.

EXEMPEL

strace -s 32 ls -l

Detta kommando begränsar utskriften av strängar till 32 tecken för systemanrop som utförs av `ls -l`.

Visa tidsstämplar för systemanrop

`strace` kan användas för att visa tidsstämplar för systemanrop.

EXEMPEL

strace -t ls -l

Detta kommando visar tidsstämplar för alla systemanrop som utförs av `ls -l`.

Visa tidsåtgång för varje systemanrop

`strace` kan användas för att visa tidsåtgång för varje systemanrop.

EXEMPEL

strace -T ls -l

Detta kommando visar tidsåtgång för varje systemanrop som utförs av `ls -l`.

Spåra endast specifika systemanrop

`strace` kan användas för att spåra endast specifika systemanrop.

EXEMPEL

strace -e trace=open,close ls -l

Detta kommando visar endast `open` och `close` systemanrop som utförs av `ls -l`.

Spåra systemanrop som refererar till en specifik sökväg

`strace` kan användas för att spåra endast de systemanrop som refererar till en specifik sökväg.

EXEMPEL

strace -P /etc/passwd ls -l

Detta kommando visar endast de systemanrop som refererar till `/etc/passwd` och utförs av `ls -l`.

SKILLNADER MELLAN macOS OCH LINUX

Det finns viktiga skillnader att tänka på när man använder `strace` på macOS jämfört med Linux:

Tillgänglighet: `strace` är ett verktyg som främst används på Linux. På macOS används `dtruss` och `dtrace` för liknande funktioner.

Installationssteg på Linux:

  • På Debian-baserade system:

sudo apt-get update
sudo apt-get install strace

  • På Red Hat-baserade system:

sudo yum install strace

Installationssteg på macOS: På macOS kan `dtrace` användas, vilket är inbyggt i systemet. `dtruss` är ett wrapper-script runt `dtrace` och kan användas på liknande sätt som `strace`.


sudo dtruss -p 1234

Funktionalitet: De flesta funktioner som erbjuds av `strace` är tillgängliga genom `dtrace` och `dtruss` på macOS. Vissa detaljer kan dock skilja sig beroende på implementation och användningsfall.

Användning: På Linux används `strace` ofta för att övervaka och felsöka systemanrop och signaler. På macOS används `dtrace` och `dtruss` för liknande ändamål.

FELSÖKNING

Om du får ett felmeddelande när du använder `strace`, kontrollera följande:

Att du använder rätt syntax och alternativ för ditt specifika kommando. Att processen du försöker spåra existerar och har rätt behörigheter. Att alla nödvändiga paket och bibliotek är installerade och uppdaterade. Att du har tillräckliga användarrättigheter för att spåra systemanrop.

Vanliga fel och deras lösningar:

  • Felmeddelande: "Permission denied":
 * Lösning: Kontrollera att du har nödvändiga behörigheter för att spåra de specifika processerna eller systemanropen.
  • Felmeddelande: "No such process":
 * Lösning: Kontrollera att den angivna processen existerar och är korrekt stavad.
  • Felmeddelande: "Invalid system call":
 * Lösning: Kontrollera att du anger giltiga systemanrop för spårning.

AVANCERAD ANVÄNDNING

`strace` erbjuder avancerade funktioner som kan användas för att spåra och analysera systemanrop och signaler mer effektivt. Här är några exempel:

Följ endast specifika barnprocesser


strace -f --trace=execve ls -l

Använd detta kommando för att följa endast de barnprocesser som utför `execve`.

Spåra systemanrop med mikrosektnöggrannhet


strace -tt ls -l

Använd detta kommando för att visa tidsstämplar med mikrosektnöggrannhet för alla systemanrop som utförs av `ls -l`.

Visa symboliska minnesadresser


strace -y ls -l

Använd detta kommando för att visa minnesadresser i symbolisk form för systemanrop som utförs av `ls -l`.

SE ÄVEN

  • dtrace - Dynamisk spårning av operativsystem och applikationer (macOS).
  • lsof - Lista öppna filer och de processer som använder dem.
  • gdb - GNU Debugger.
  • ptrace - Spåra systemanrop och signaler för en process.

FÖRFATTARE

`strace` utvecklades av Paul Kranenburg och bidragsgivare.

KOLOFON

Denna sida är en del av `strace`-projektet. Mer information om projektet finns på ⟨https://strace.io⟩. Om du har en buggrapport för denna manualsida, se ⟨https://github.com/strace/strace/issues⟩. Denna sida erhölls från projektets upstream Git-repository ⟨https://github.com/strace/strace.git⟩ den 2023-12-22. Om du upptäcker några renderingsproblem i denna HTML-version av sidan, eller om du tror att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i denna KOLOFON (som inte är en del av den ursprungliga manualsidan), skicka ett e-postmeddelande till man-pages@man7.org.

KÄLLOR

strace manual (Linux) strace Officiell Webbplats strace GitHub Repository