Equivalente di strace -feopen <comando> su mac os X


131

Ciò è utile per il debug (quindi relativo alla programmazione). Su Linux, possiamo usare il comando

strace -feopen python myfile.py

per capire quali moduli python e oggetti condivisi vengono caricati. Esiste un one-liner equivalente su macOS X?

Risposte:


180

Suppongo che intendevi strace -fetrace=open?

dtruss -f -t open python myfile.py

Ciao effimero, ho appena testato la tua versione di strace (con -fetrace = open) e ha dato esattamente lo stesso risultato del mio esempio. Non vedo l'ora di testare il tuo comando dtruss a breve. Grazie per la risposta rapida!
Setjmp,

2
In qualche modo, oggi, sudo dtruss non funziona per me. È come se Python non fosse eseguito affatto!
Dima Tisnek,

2
@qarma sudo-ing back potrebbe risolvere nuovamente il tuo problema: serverfault.com/questions/215510/…
ErikR

27
dtrussrichiede i privilegi di root, ma potresti non voler eseguire il comando che vuoi tracciare come root. Considerasudo dtruss -f -t open sudo -u $USER python myfile.py
un secchione pagato il

7
Ottenere un errore con $ sudo dtruss -f -t open sudo -u $USER python: `dtrace: la protezione dell'integrità del sistema è attiva, alcune funzionalità non saranno disponibili` e quindidtrace: failed to execute sudo: dtrace cannot control executables signed with restricted entitlements
bluastra
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.