GNU/Linux >> Znalost Linux >  >> Ubuntu

11 Příkaz Strace s příkladem v Linuxu

Strace je velmi výkonný nástroj pro ladění příkazového řádku, který pomáhá řešit problémy sledováním systémových volání a signálů konkrétního programu. V případě, že nemáme k dispozici zdrojový kód, lze strace použít k analýze toho, jak program interaguje se systémem. V tomto článku probereme některé důležité strace příkazy pro odstraňování problémů a ladění programů a procesů v Linuxu.

Instalace

Instalace nástrojů strace utility je přímočarý a snadný proces. Pomocí následujícího příkazu nainstalujte aplikaci podle vaší distribuce Linuxu.

Debian/Ubuntu

$ sudo apt install strace

RedHat/CentOS

$ yum install strace

Ověřte instalaci spuštěním následujícího příkazu

$ strace -V

Výstup:

1.Trace systémových volání Linux Command pomocí strace

Strace je užitečný při sledování volání příkazového systému Linuxu. V tomto příkladu jednoduchý příkaz pwd se používá pro sledování.

$ strace pwd

Výstup:

2. Přesměrování protokolu trasování v souboru

Záznam trasování systémových volání lze přesměrovat do souboru pomocí příkazu strace jako:

$ strace -o pwd-log.txt pwd

Pomocí příkazu cat vyhledejte obsah souboru jako:

$ cat pwd-log.txt

3. Použijte strace k tisku souhrnu systémových volání namísto běžného výstupu.

Použití strace s volbou -c umožňuje vytisknout souhrn protokolu. V tomto příkladu je uveden souhrn linuxového příkazu pwd.

$ strace -c pwd

Výstup:

4. Sledujte konkrétní systémová volání pomocí strace

Příkaz Strace s volbou -e a typem sledování (čtení, zápis) lze použít ke sledování specifických systémových volání. V tomto příkladu je systémové volání write sledováno pro příkaz pwd.

$ strace -e trace=write pwd

Výstup:

5. Příkaz Strace pro tisk časového razítka každého systémového volání.

Příkaz Strace s volbou -r lze použít k vytištění všech relativních časových razítek každého systémového volání.

$ strace -r pwd

Výstup:

6. Trasování pomocí id procesu

Pokud v systému již běží nějaký proces, systémová volání lze sledovat pomocí příkazu strace s volbou -p spolu s ID procesu. V tomto příkladu je pro trasování použito id procesu nginx

Syntaxe

$ strace -p <process id>
$ strace -p 12842

Trasování lze zastavit stisknutím ctrl+c.

7. Příkaz Strace pro tisk výstupu ladění

Příkaz Strace s volbou -d lze použít k tisku výstupu ladění. V tomto příkladu je pro trasování použit jednoduchý linuxový příkaz pwd.

$ strace -d pwd

Výstup:

8. Příkaz Strace pro tisk času stráveného systémovými voláními.

Příkaz Strace s volbou -T udává čas strávený systémovými voláními jako:

$ strace -T pwd

Výstup:

9. Příkaz Strace pro tisk ukazatele instrukce

Příkaz Strace s volbou -i vytiskne ukazatel instrukce. V tomto příkladu je pro trasování použit jednoduchý linuxový příkaz pwd.

$ strace -i pwd

Výstup:

10. Příkaz Strace ke sledování systémových volání na základě konkrétní podmínky

Příkaz Strace lze použít ke sledování systémových volání na základě specifických podmínek, jako je paměť, proces, CPU atd. V tomto příkladu jsou systémová volání související se správou paměti trasována pro jednoduchý linuxový příkaz pwd.

$ strace -q -e paměť pwd

Výstup:

11. Příkaz Strace ke sledování systémových volání souvisejících se signálem

Systémová volání související se signálem lze sledovat definováním typu trasování v příkazu. V tomto příkladu nc -v -n localhost 80 se používá pro sledování systémových volání souvisejících se signálem.

$ strace -e trace=signal nc -v -n 127.0.0.1 80

Výstup:

Závěr

V tomto článku jsme se dozvěděli, co je nástroj strace a kdy jej lze použít. Také jsem pokryl některé důležité strace příkazy pro odstraňování problémů a ladění systémových volání a procesů.


Ubuntu
  1. Výukový program příkazu Linux Ping s příklady

  2. Linux Tee Command s příklady

  3. JQ Command v Linuxu s příklady

  1. Linux Source Command s příklady

  2. Příkaz dpkg v Linuxu s příklady

  3. wc Linux Command s příklady

  1. Linux řazení příkazů s příklady

  2. Echo Command v Linuxu (s příklady)

  3. man Command v Linuxu s příklady