Entspricht strace -feopen <Befehl> auf Mac OS X.

131

Dies ist nützlich für das Debuggen (daher programmierbezogen). Unter Linux können wir den Befehl verwenden

strace -feopen python myfile.py

um herauszufinden, welche Python-Module und freigegebenen Objekte geladen werden. Gibt es unter macOS X einen gleichwertigen Einzeiler?

Setjmp
quelle

Antworten:

180

Ich nehme an, du meintest strace -fetrace=open?

dtruss -f -t öffne python myfile.py
kurzlebig
quelle
Hallo Ephemient, ich habe gerade Ihre Version von strace getestet (mit -fetrace = open) und es gab genau das gleiche Ergebnis wie in meinem Beispiel. Ich freue mich darauf, Ihren Befehl dtruss in Kürze zu testen. Danke für die schnelle Antwort!
Setjmp
2
Irgendwie funktioniert sudo dtruss heute bei mir nicht mehr. Es ist, als ob Python überhaupt nicht ausgeführt wird!
Dima Tisnek
2
@qarma sudo-ing wieder zurück könnte Ihr Problem lösen: serverfault.com/questions/215510/…
ErikR
27
dtrusserfordert Root-Rechte, aber Sie möchten den Befehl, den Sie als root verfolgen möchten, möglicherweise nicht ausführen. Betrachten Siesudo dtruss -f -t open sudo -u $USER python myfile.py
ein bezahlter Nerd
7
Es wird ein Fehler $ sudo dtruss -f -t open sudo -u $USER pythonangezeigt mit : "dtrace: Systemintegritätsschutz ist aktiviert, einige Funktionen sind nicht verfügbar" und danndtrace: failed to execute sudo: dtrace cannot control executables signed with restricted entitlements
blau