Odpowiednik strace -feopen <polecenie> w systemie Mac OS X

133

Jest to przydatne do debugowania (stąd związane z programowaniem). W Linuksie możemy użyć polecenia

strace -feopen python myfile.py

aby dowiedzieć się, które moduły Pythona i współdzielone obiekty są ładowane. Czy w systemie macOS X jest odpowiednik jednej linijki?

Setjmp
źródło

Odpowiedzi:

183

Przypuszczam, że miałeś na myśli strace -fetrace=open?

dtruss -f -t otwórz python myfile.py
ephemient
źródło
Cześć ephemient, właśnie przetestowałem twoją wersję strace (z -fetrace = open) i dała dokładnie taki sam wynik jak mój przykład. Nie mogę się doczekać, aby wkrótce przetestować twoje polecenie dtruss. Dziękuję za szybką odpowiedź!
Setjmp
2
Jakoś dzisiaj sudo dtruss nie działa dla mnie. To tak, jakby Python w ogóle nie był wykonywany!
Dima Tisnek
2
@qarma sudo-ing z powrotem może rozwiązać twój problem: serverfault.com/questions/215510/ ...
ErikR
28
dtrusswymaga uprawnień roota, ale możesz nie chcieć uruchamiać polecenia, które chcesz śledzić jako root. Zastanów sięsudo dtruss -f -t open sudo -u $USER python myfile.py
płatny kujon
8
Pojawia się błąd z komunikatem $ sudo dtruss -f -t open sudo -u $USER python: `dtrace: ochrona integralności systemu jest włączona, niektóre funkcje nie będą dostępne`, a następniedtrace: failed to execute sudo: dtrace cannot control executables signed with restricted entitlements
niebieski kolor