A Strace egy CLI segédprogram, amelyet a rendszer hibáinak ellenőrzésére használnak óta lehetővé teszi a rendszerhívások nyomon követését amelyet egy bizonyos program és az összes kapott jel használ. Hasznosság lehetővé teszi a felhasználó számára, hogy figyelemmel kísérje és (a 4.15-ös verzió óta) beavatkozni a program és a mag közötti interakció folyamatábabeleértve a folyamatban lévő rendszerhívásokat, előugró ablakokat és a folyamatállapot-változásokat
Működését a linux kern ptrace nevű szolgáltatása teszi lehetővé. Hasonló a többi Unix rendszeren elérhető rácsos alkalmazáshoz. A Cygwin program hasonló segédprogramot nyújt. Leggyakoribb felhasználása az elindítása a nyomon követett programmal együtt, amely kinyomtatja a végrehajtott rendszer listáját.
Hasznos kideríteni egy adott program meghibásodásának okátvagy mert beszámol azokról a helyzetekről, amikor például a program olyan fájlhoz próbál hozzáférni, amely nem létezik, vagy amelyre nincs olvasási engedélye.
A Strace -ből kiemelkedő jellemzők közül a következők emelkednek ki:
- Tudjon meghatározni egy nyomon követhető syscall névszűrőt (az -e trace = opció használatával): név szerint, például klón, villa, vfork; az egyik előre definiált csoport, például a% ipc vagy a% file használata; vagy (a 4.17-es verzió óta) a reguláris kifejezés szintaxisa, például az óra_ *.
- Adja meg a nyomon követhető útvonalak listáját (például -P /etc/ld.so.cache).
- Adja meg azoknak a fájlleíróknak a listáját, amelyek I / O-t ki kell dobni
- Számolja a végrehajtási időt és a syscall számot
- Relatív vagy abszolút időbélyegek nyomtatása
- Módosítsa a megadott rendszerhívások visszatérési és hibakódját, és végrehajtás után jeleket adjon be
- Információ kinyerése fájlleírókban (beleértve a foglalatokat is).
- Verem nyomkövetés, a (4.21-es verzió óta) igény-szimbólummal (-k).
- Szűrés a syscall visszatérési állapota szerint
- A strace támogatja néhány ioctl parancsosztály argumentumainak dekódolását, mint például a BTRFS_ *, V4L2_ *, DM_ *, NSFS_ *, MEM *, EVIO *, KVM_ * és még sok más argumentumát.
Mivel a strace csak részletezi a rendszer hívásait, nem használható annyi probléma felderítésére, mint egy kódhiba-elhárító, mint például a GNU Debugger (gdb). Ez azonban könnyebben használható, mint egy kódhiba-elhárító, és rendkívül hasznos eszköz a rendszergazdák számára. A kutatók arra is használják, hogy rendszerhívás-nyomokat hozzanak létre a későbbi visszajátszáshoz.
A Strace 5.3 új verziójáról
Nemrégiben bemutatták az 5.3-as verzió új verzióját, amelyben a kód licenc BSD-ről LGPLv2.1 + és GPLv2 + -ra változott a próbaverzióhoz.
A meglévő változásokon belül is támogatás a rendszerhívások szűrésére seccomp szűrők létrehozásával ("–Seccomp-bpf"), valamint a visszatérési kód ("-e status = ...").
Egy másik változás, amely kiemelkedik az új verzió bejelentésében, az, hogy a fejlesztők hozzáadták a pidfd_open és a clone3 dekódoló rendszerhívások támogatása, plusz az io_cancel, io_submit, s390_sthyi és a syslog rendszerhívások továbbfejlesztett dekódolása.
A hirdetésben is ki van emelve Az ioctl parancs felsorolja a szinkronizálást a Linux 5.3 kernellel
A többi változás közül amelyek a hirdetésben szerepelnek, a következők:
- Továbbfejlesztett NETLINK_ROUTE protokoll dekódolás
- A dekódolt hálózati hivatkozás UNIX_DIAG_UID attribútum és a WDIOC_ * ioctl parancsok
- Frissítette az AUDIT_ *, BPF_ *, ETH_ *, KEYCTL_ *, KVM_ *, MAP_ *, SO_ *, TCP_ *, V4L2_ *, XDP_ * és * _MAGIC konstanslistákat
Hogyan telepítsük az 5.3-as verziót az Ubuntu és a derivatívákra?
A Strace segédprogram megtalálható az Ubuntu tárolókban, valamint annak származékai, de amennyire ehhez az új verzióhoz még nem került fel a tárakba. A tárolókon keresztüli telepítés a következő parancs végrehajtásával történhet:
sudo apt install strace
Most azoknak, akik szeretnék telepíteni ezt az új verziót, töltsék le a forráskódot és fordítsák le a rendszerén.
Letöltik a forráskódot:
git https://gitlab.com/strace/strace.git
Belépnek:
cd strace
És összeállítják:
./configure && make && make install
Végül a felhasználással kapcsolatban találhat néhány útmutatót a neten.