ตัวอย่างการ track process ด้วย strace
Strace เป็นเครื่องมือสำหรับการ track การทำงานของโปรแกรม ไม่ว่าจะเป็นการ load library ต่างๆรวมถึงการเรียกใช้งาน system call ต่างๆ
strace มักจะถูกนำมาใช้เมื่อมีการรันโปรแกรมแล้ว error หรือเกิดการทำงานที่ทำให้โปรแกรมหยุดไปโดยไม่รู้สาเหตุ strace มักจะเอามา track ว่าเกิดอะไรขึ้น ถึงจุดไหนทำไมถึงเกิดหยุดการทำงานไป
วิธีการติดตั้ง
Strace สามารถติดตั้งได้ใน Linux Distribution มากมาย โดยในที่นี้จะยกตัวอย่างเป็น Debian, Ubuntu, RHEL, CentOS และ Fedora
1 2 3 |
# sudo apt install strace #Debian/Ubuntu # yum install strace #RHEL/CentOS # dnf install strace #Fedora 22+ |
เราสามารถ 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