Possiedo un MacBook Pro a metà del 2009 e un nuovo MacBook Pro 2012 e sono in procinto di apprendere DTrace (uno strumento davvero straordinario). Quando si calcolano gli aggregati sul nuovo MBP 2012, gli aggregati non vengono stampati.La sonda END DTrace non si attiva mai
sudo dtrace -n 'syscall:::entry { @[execname] = count() }'
Sulla mia metà del 2009 MBP, mostra qualcosa di simile:
usbmuxd 1
GrowlHelperApp 2
imklaunchagent 2
installd 2
stackshot 2
...
Del 2012 MBP non mostra nulla.
ho aggiunto un printf in una sonda Essere e END per vedere se la sonda END sarebbe nemmeno il fuoco in questo modo:
BEGIN
{
printf("Hi!");
}
syscall:::entry
{
@[execname] = count();
}
END
{
printf("Bye!")
}
Sulla metà del 2009 MBP entrambe le sonde hanno sparato e stampato e sul 2012 MBP solo la sonda BEGIN ha sparato. La FINE non ha mai sparato.
Entrambi i MBP eseguono Lion 10.7.3. Non sono sicuro di cosa provare dopo. L'unica differenza che mi viene in mente in questo momento è che non ho installato gli strumenti da riga di comando dello sviluppatore sul MBP 2012. Questo non ha senso per me ed è uno sparo nell'oscurità.
Qualsiasi aiuto o idea sarebbe apprezzato. Grazie.
============= [account Root Enabled] ====================
Così mi ha permesso di account di root e ri-eseguito il comando
sudo dtrace -n 'syscall:::entry { @[execname] = count() }'
senza successo ma se lo faccio
su
dtrace -n 'syscall:::entry { @[execname] = count() }'
funziona!
============= [uccidono -s INT] =========================== ==
Ho fatto un po 'più di sperimentazione. Se corro:
sudo kill -s INT [pid of dtrace]
tutto funziona e l'uscita viene visualizzata.
se corro:
sudo kill -s INT [pid of sudo running dtrace]
funziona anche questo!
Ma se uso control-c nel terminale, non visualizza l'output.
Qual è la differenza tra control-c e kill -s INT?
Provare [per attivare "root"] (http://support.apple.com/kb/ht1528) sul sistema. – Kentzo