เทียบเท่ากับ strace -feopen <command> บน mac os X


132

สิ่งนี้มีประโยชน์สำหรับการดีบัก (ดังนั้นจึงเกี่ยวข้องกับการเขียนโปรแกรม) บน linux เราสามารถใช้คำสั่ง

strace -feopen python myfile.py

เพื่อดูว่าโมดูล python และอ็อบเจ็กต์ที่แชร์ใดถูกโหลด มี one-liner ที่เทียบเท่าบน macOS X หรือไม่?

คำตอบ:


181

ฉันคิดว่าคุณหมายถึงstrace -fetrace=open?

dtruss -f -t เปิด python myfile.py

สวัสดี ephemient ฉันเพิ่งทดสอบ strace เวอร์ชันของคุณ (ด้วย -fetrace = open) และให้ผลลัพธ์ที่เหมือนกับตัวอย่างของฉัน ฉันหวังว่าจะได้ทดสอบคำสั่ง dtruss ของคุณในไม่ช้า ขอบคุณสำหรับการตอบสนองอย่างรวดเร็ว!
Setjmp

2
ยังไงก็ตามวันนี้ sudo dtruss ใช้ไม่ได้กับฉัน ราวกับว่า Python ไม่ได้ถูกเรียกใช้งานเลย!
Dima Tisnek

2
@qarma sudo-ing การกลับมาอีกครั้งอาจช่วยแก้ปัญหาของคุณได้: serverfault.com/questions/215510/…
ErikR

27
dtrussต้องใช้สิทธิ์ root แต่คุณอาจไม่ต้องการรันคำสั่งที่คุณต้องการให้ตรวจสอบว่า root พิจารณาsudo dtruss -f -t open sudo -u $USER python myfile.py
คนโง่จ่าย

7
ได้รับข้อผิดพลาดกับ$ sudo dtruss -f -t open sudo -u $USER python: "dtrace: การป้องกันความสมบูรณ์ของระบบเปิดอยู่คุณลักษณะบางอย่างจะไม่สามารถใช้งานได้" จากนั้นdtrace: failed to execute sudo: dtrace cannot control executables signed with restricted entitlements
blueyed
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.