Strace เป็นเครื่องมือสำหรับการ track การทำงานของโปรแกรม ไม่ว่าจะเป็นการ load library ต่างๆรวมถึงการเรียกใช้งาน system call ต่างๆ

strace มักจะถูกนำมาใช้เมื่อมีการรันโปรแกรมแล้ว error หรือเกิดการทำงานที่ทำให้โปรแกรมหยุดไปโดยไม่รู้สาเหตุ strace มักจะเอามา track ว่าเกิดอะไรขึ้น ถึงจุดไหนทำไมถึงเกิดหยุดการทำงานไป

วิธีการติดตั้ง

Strace สามารถติดตั้งได้ใน Linux Distribution มากมาย โดยในที่นี้จะยกตัวอย่างเป็น Debian, Ubuntu, RHEL, CentOS และ Fedora

 

เราสามารถ track การทำงานได้ทั้งแบบการใช้งานเรียก fresh command เลย หรือจะตรวจสอบโดยระบุ PID ก็ได้ครับ

ทดสอบ strace ping 127.0.0.1

จากภาพจะเห็นว่า strace จะ track ทั้งหมดไม่ว่า ping จะไปทำอะไร ทั้งส่วนการเรียกใช้ lib ld.so.nohwcap, libcap.so.2 รวมถึงในส่วนการเรียกการใช้ system call ต่างๆ read, fstat, mmap

ใช้ -c เพื่อทำ report การใช้งานต่างๆทั้งเรื่อง system call, เวลาในการใช้งาน ,error ต่างๆที่เกิดขึ้น

ใช้ -i option เพื่อแสดง pointer ต่างๆเวลาเรียกใช้งาน system call ใดๆ

หากเราต้องการ track เฉพาะการใช้งาน system call ใดๆ สามารถทำได้โดยใช้ option -e trace=<system call> เช่น trace=read เป็นต้น

หากต้องการ output trace ให้ใช้ option -o

Source:: Tecmint