Fa 'dtruss -p PID' elenca le chiamate di sistema fatte prima che dtruss fosse eseguito?

0

Sto provando a diagnosticare un comando a intermittenza lenta. Quando eseguo il comando e lo vedo sospeso, premo control + t per ottenere il PID, quindi in un'altra scheda, eseguo diagnose [PID] - ad es. diagnose 123 . Ho definito diagnose come funzione nella mia configurazione zsh:

# See system calls of the process with a given PID
function diagnose() { sudo dtruss -cade -p "$1" 2>&1 | tee /tmp/dtruss_output }

Ovviamente, poiché sto reagendo quando noto un blocco, eseguo diagnose diversi secondi dopo l'avvio del processo. L'output elenca molte chiamate di sistema, ma mi chiedo se mi manca qualcosa di importante.

La lista comandi comandi retroattivamente? In altre parole, l'output di dtruss -p [PID] include le chiamate di sistema effettuate da quel processo prima che sia stato eseguito dtruss ?

    
posta Nathan Long 17.02.2015 - 13:14
fonte

1 risposta

1

No

Ho appena eseguito un esperimento per testarlo. Ho scritto e ho eseguito questo script Ruby:

puts "going to read foo"
puts File.read('/tmp/foo.txt')

sleep 5
puts "going to read bar"
puts File.read('/tmp/bar.txt')

sleep 5
puts "going to read baz"
puts File.read('/tmp/baz.txt')

Dopo l'avvio, ho eseguito diagnose sul suo PID, come descritto sopra. Ho visto solo una chiamata a open :

20309/0x4a7118:     34082      41     34 open("/tmp/baz.txt
puts "going to read foo"
puts File.read('/tmp/foo.txt')

sleep 5
puts "going to read bar"
puts File.read('/tmp/bar.txt')

sleep 5
puts "going to read baz"
puts File.read('/tmp/baz.txt')
", 0x1000000, 0x1B6) = 7 0
    
risposta data 17.02.2015 - 13:20
fonte

Leggi altre domande sui tag