มีเทียบเท่าของสิ่งที่-T
และ-U
ตัวเลือกของtruss
ยูทิลิตี้ Solaris ไม่เกี่ยวกับลินุกซ์
สิ่งเหล่านี้คือการระบุการเรียกของระบบ ( -T
) หรือฟังก์ชั่นห้องสมุด ( -U
) ซึ่งเมื่อเรียกใช้โดยแอปพลิเคชันที่ติดตามจะทำให้เกิดการหยุด
หรือกล่าวเป็นอย่างอื่นฉันต้องการให้กระบวนการใด ๆ ที่เริ่มต้นโดยแอปพลิเคชันที่ติดตามแล้วหยุดทำงาน (ราวกับถูกฆ่าโดย SIGSTOP) ทันทีที่ทำการเรียกระบบหรือการเรียกฟังก์ชั่นไลบรารีที่แชร์
strace
และltrace
บน Linux นั้นมีชุดฟีเจอร์มากมายของ Solaris truss
แต่พวกเขาดูเหมือนจะไม่ทำเช่นนั้น
ตัวอย่างเช่น
truss -f -T open cmd
จะเป็นเช่นstrace -f cmd
นั้นยกเว้นว่าหากกระบวนการที่ดำเนินการcmd
หรือลูกหลานของมันopen
เรียกระบบใด ๆมันจะหยุดทันที (และฉันสามารถดำเนินการต่อในภายหลังได้ตามความสะดวกของฉัน)
ในบางกรณีฉันสามารถใช้งานgdb
ได้catch syscall
แต่ฉันกำลังมองหาวิธีแก้ปัญหาที่สามารถติดตามส้อมได้อย่างสะดวกและดำเนินการต่อสำหรับกระบวนการทางแยกทั้งหมดและทำexecve
ต่อไปเรื่อย ๆ
ดูเหมือนว่าฉันจะเรียกคืนยูทิลิตี้บางอย่างที่ให้ฟังก์ชั่นเดียวกันแม้แต่หนึ่ง (หรือตัวเลือกสำหรับยูทิลิตี้เดียวกันนั้น) ไปยังแอปพลิเคชันขั้นตอนเดียวระหว่างบางเหตุการณ์ของ syscall บางระยะไกลเช่นนั้น แต่หน่วยความจำของฉัน ที่อยู่บน Linux
follow-exec-mode
) ฉันกำลังทดลองกับมัน ไม่ตอบคำถามอย่างเคร่งครัด แต่อาจดีพอสำหรับสิ่งที่ฉันต้องการ
truss
ส